2014-01-21 4 views
0

У меня есть этот sql-запрос, который должен возвращать число 0, но я думаю, что он плохо построен.Счетчик SQL не возвращает правильный счет

здесь код SQL, который я исполняю

string cmdText = @"SELECT count(*) 
        From Apointement 
        WHERE [email protected] AND 
         [email protected] 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  = [email protected] 
trialdate = 1/27/2014 12:00:00AM 
trialhour = 10:00 

Дата в базе данных

email  = [email protected] 
trialdate = 1/27/2014 
trialhour = 12:00  <=== notice the only appointment is at 12:00 not at 10:00 

Я не могу выяснить, какой элемент является неправильным.

+1

Простая опечатка, но любопытно, почему нет сообщения об ошибке. 'TrialHour = trialhour' всегда верно – Steve

+0

@Steve Да, мне тоже было интересно об этом :) – Shiva

ответ

8
AND TrailHour=trialhour 

должен быть

AND [email protected] 
+1

возможно это должно быть' И TrialHour = @ trialhour' – David

+0

Да, могут быть любые ошибки там :) – RedFilter

+0

спасибо I не видел этого .... – user3127986

1

У вас не хватает перед последним параметром @.

Так что сделайте свой SQL так.

string cmdText = "SELECT count(*) From Apointement WHERE [email protected] AND 
      [email protected] AND [email protected]" 
+1

Неважно, но я поставил '@' перед вводом строки, чтобы он мог быть многострочным. – gunr2171

Смежные вопросы