美好的一天!Sql查詢數據讀取器返回True,即使它在C#中也是False!
這花了我幾個小時,爲什麼我的查詢返回一個真實的,即使它是假的。
這裏是我的代碼。
public SqlDataReader Check(BEL bel) {
SqlCommand cmd = new SqlCommand();
cmd.Connection = dbcon.getcon();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT SUM(Total) as OverallTotal FROM table WHERE [email protected] AND [email protected] AND [email protected] AND Status='Without'";
cmd.Parameters.AddWithValue("@Id",bel.CLEmpID);
cmd.Parameters.AddWithValue("@From", bel.CLPayrollFrom);
cmd.Parameters.AddWithValue("@To", bel.CLPayrollTo);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}
假設參數值是:
@Id = 0001
@From = 1/28/2016
@To = 1/29/2016
這裏是我的方法調用DataReader的
SqlDataReader drCheck;
drCheck = bal.Check(bel);
if (drCheck.HasRows == true)
{
drCheck.Read();
// I'm inside the computation of OverallTotal
}else{
drCheck.Close();
// I'm out
}
drCheck.Close();
的問題是,當我 「到」 值,例如,是假設它是假的,它不符合真實條件,但事實並非如此。
請幫忙。在此先感謝
如果讀者沒有行,則關閉兩次 –
現在沒關係。問題是,爲什麼即使查詢是錯誤的,它仍然發送給我內部的if == true –
爲什麼你需要else部分?查詢總是返回一個結果。你甚至不需要'SqlDataReader'。使用'ExecuteScalar'。 – user3185569