我有这个sql查询,它应该返回0,但我猜它是很糟糕的。
这是我执行的SQL代码
string cmdText = @"SELECT count(*)
From Apointement
WHERE emailClient=@emailClient AND
trialdate=@trialdate AND
TrailHour=trialhour";
SqlCommand cmd = new SqlCommand(cmdText, con);
cmd.Parameters.AddWithValue("@emailClient", Convert.ToString(Session["email"]));
cmd.Parameters.AddWithValue("@trialdate",dDateApt);
cmd.Parameters.AddWithValue("@trialhour", sHourApt);
if (con.State == ConnectionState.Closed)
{
con.Open();
}
int nbrofRec = (int) cmd.ExecuteScalar();
if (nbrofRec >= 1)
此查询返回1作为计数。
查询中的数据如下:
email = s.brown@rv.com
trialdate = 1/27/2014 12:00:00AM
trialhour = 10:00
数据库中的日期
email = s.brown@rv.com
trialdate = 1/27/2014
trialhour = 12:00 <=== notice the only appointment is at 12:00 not at 10:00
我无法找出哪个元素是错误的。
答案 0 :(得分:8)
AND TrailHour=trialhour
应该是
AND TrailHour=@trialhour
答案 1 :(得分:1)
您在最后一个参数前面缺少@
。
所以让你的SQL就这样。
string cmdText = "SELECT count(*) From Apointement WHERE emailClient=@emailClient AND
trialdate=@trialdate AND TrailHour=@Trialhour"