SQL计数没有返回正确的计数

时间:2014-01-21 20:25:09

标签: c# sql

我有这个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

我无法找出哪个元素是错误的。

2 个答案:

答案 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"