Проверьте возврат команды sql в c # - PullRequest
1 голос
/ 15 марта 2012

Я хочу проверить, возвращает ли мой запрос какое-либо значение или нет, и написать оставшуюся логику соответственно.

SqlCommand myCommand = new SqlCommand("Select * from phc.userbase where [user]='@Username' and [password]='@password'", myConnection);

Я хочу знать, что эта команда возвращает ноль или нет. Я пытался

myReader = myCommand.ExecuteReader();
bool rd = myReader.Read();

if rd==false

но я не могу заставить его работать. Есть идеи?

Вот мои параметры:

SqlParameter myParam = new SqlParameter("@Username", SqlDbType.VarChar, 25);
myParam.Value = usr;

SqlParameter myParam2 = new SqlParameter("@password", SqlDbType.VarChar, 25);
myParam2.Value = pass;

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Это зависит от того, что вы подразумеваете под null здесь;ты имеешь в виду "нет строк"?Если это так:

using(var myReader = myCommand.ExecuteReader()) {
    if(myReader.Read()) {
      // at least 1 row; can now check columns
    } else {
      // no rows
    }
}

Честно говоря, вы, вероятно, могли бы изменить это значение на SELECT 1 ... и использовать ExecuteScalar - гораздо меньше.

В этом случае, однако, этовероятно, проще просто SELECT 1 ...rest of query... и использовать:

object value = myCommand.ExecuteScalar();
if(value != null) { ... got a row ...}
2 голосов
/ 15 марта 2012

использовать SqlDataReader.HasRows ()

if (myReader.HasRows())
{
    // Do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...