string checkuserQuery = "select username from usersign where Username=' " + TextBox1.Text + " ' ";
SqlCommand usercom = new SqlCommand(checkuserQuery, conn);
string user1 = string.Empty;
Object val = usercom.ExecuteScalar();
if (val != null)
{
user1 = val.ToString();
if (user1 == TextBox1.Text)
{
string checkpasswordQuery = "select password from usersign where Username=' " + TextBox1.Text + " ' ";
SqlCommand passcom = new SqlCommand(checkpasswordQuery, conn);
string password = passcom.ExecuteScalar().ToString();
if (password == TextBox2.Text)
{
Session["New"] = TextBox1.Text;
Label5.Text = "password is correct";
Response.Redirect("user.aspx");
}
else
{
Label5.Text = "password is not correct";
}
}
}
else
{
Label5.Text = "val is null";
}
}
回答
的問題可能是在空格字符以下的(我已經把在空間 不正確使用*)
where Username='*" + TextBox1.Text + "*' "
所以上面將意味着您的查詢試圖要獲取一個用戶名,該用戶名在開始和結尾處具有空格字符,因此只需刪除這些空格
另一點是,此類查詢應該與參數一起使用,因爲它很容易出現 SQL注入類型at大頭針
謝謝..空間導致問題 – user3591497
ExecuteScalar()
如果查詢未返回值,將返回空值。
如果結果集爲空,則返回結果集中第一行的第一列或空值 引用(在Visual Basic中爲Nothing)。
這條線將拋出一個空引用異常:使用字符串連接
passcom.ExecuteScalar().ToString();
構建查詢很容易出錯。更重要的是,它很容易被SQL注入。該代碼表明密碼以純文本形式存儲在數據庫中。
SQL注入和純文本密碼是任何應用程序的嚴重問題。使用ADO.Net參數化您的查詢(使用ADO.Net非常簡單)並散列您的密碼。
缺乏一個匹配的可能是引起下面一行:
string checkpasswordQuery = "select password from usersign where Username=' " + TextBox1.Text + " ' ";
注意多餘的空格在字符串連接添加。無論是在TextBox1
之前還是之後都會有空格,導致匹配失敗。
謝謝..空間導致問題 – user3591497
- 1. ExecuteScalar返回0值
- 2. ExecuteScalar返回錯誤的值
- 3. OledbConnection ExecuteScalar返回舊值
- 4. SQL ExecuteScalar 2返回值?
- 5. 的ExecuteScalar返回null
- 6. 的ExecuteScalar返回值是不適合
- 7. Ado.net ExecuteScalar()返回null
- 8. 返回標識值時ExecuteScalar vs ExecuteNonQuery
- 9. 的ExecuteScalar返回SQL COUNT(*)假
- 10. 的ExecuteScalar保持返回
- 11. ExecuteScalar()總是返回NULL
- 12. ExecuteScalar可以返回null嗎?
- 13. 的ExecuteScalar沒有返回正確的價值觀C#
- 14. 的ExecuteScalar總是調用標量值函數時返回null
- 15. C#SQL Aggregate ExecuteScalar返回查詢
- 16. ASP .NET C#SQL在ExecuteScalar上返回DBNULL
- 17. ExecuteScalarAsync掛起,但ExecuteScalar立即返回
- 18. SELECT後,ExecuteScalar會立即返回嗎?
- 19. Ado.Net - 從ExecuteScalar和ExecuteNonQuery返回true或false
- 20. 如何使用ExecuteScalar從Oracle數據庫返回單個值?
- 21. mysql_query返回空值
- 22. mysqli返回空值
- 23. sharedPreferences返回空值
- 24. NSMutableUrlRequest返回空值
- 25. String.Split()返回空值
- 26. getLastLocation返回空值
- 27. CLLocationManager返回空值
- 28. NSDateFormatter返回空值
- 29. FQL返回空值
- 30. Intent.getData.getPath()返回空值
它在哪裏「不工作」?我們可以解決您的問題 – kevchadders