運行在我的應用程序凍結下面的方法時,當我暫停VS似乎被卡住對雲行:C#到SQL的ExecuteReader()陷入
SqlDataReader reader = select.ExecuteReader();
我有其他SQL方法運行良好,所以我知道連接字符串是正確的,我已經仔細檢查了SQL,這很好。我認爲reader變量在ExecuteReader()被調用時不能包含標量函數的返回值嗎?
public static bool AccountValidation(string username, string password)
{
string statement = "select dbo.AccountValidation('" + username + "','" + password + "')";
SqlCommand select = new SqlCommand(statement, connect);
connect.Open();
SqlDataReader reader = select.ExecuteReader();
string result = reader.ToString();
connect.Close();
if (result != "true")
{
return false;
}
else
{
return true;
}
}
稍微不相關,但你真的應該考慮參數化你的查詢,因爲你目前的方法可能會讓你容易受到像SQL注入這樣的糟糕。 –
你期望reader.ToString()能做什麼?你的意思是做select.ExecuteScalar()而不是? –
我不是第一個說,但重申,**參數化您的查詢**。您的代碼可能容易受到SQL注入攻擊。你還應該考慮在'using'語句中包裝實現'IDisposable'的對象。 – maccettura