Как определить, возвращаются ли нулевые записи в SqlDataAdapter

У меня есть следующий код

  string connString = ConfigurationManager.ConnectionStrings["XXXConnectionString"].ConnectionString;
        SqlConnection conn = new SqlConnection(connString);
        conn.Open();

        SqlDataAdapter SQLDataAdapter1 = new SqlDataAdapter("SELECT * FROM EVENTSignUp WHERE (MembmerEmail = " + userInfo.Email + ")", conn);
        DataTable dtResult1 = new DataTable();
        SQLDataAdapter1.Fill(dtResult1);

но если нет записей, я просто получаю исключение по адресу:

        SQLDataAdapter1.Fill(dtResult1);

как определить, нет ли записей, возвращенных по этому запросу?

3 ответа

Решение

Я думаю, что проблема не в записях, повторно сохраняемых SqlDataAdapter, потому что даже если он пуст, он не будет генерировать исключение. проблема в вашем запросе, потому что поле электронной почты varchar, и это должно быть так:

SqlDataAdapter SQLDataAdapter1 = new SqlDataAdapter("SELECT * FROM EVENTSignUp WHERE (MembmerEmail = '" + userInfo.Email + "')", conn);
dtResult1.Rows.Count > 0

-- редактировать

Не подписывайтесь читать пост; обратите внимание, что вы получаете исключение на.Fill. Очевидно, мой фрагмент кода здесь не поможет вам в этом. Как просили другие; что является исключением?

-- редактировать:

И, как уже отмечали другие, ваш запрос должен иметь форму:

SqlCommand command = new SqlCommand(@"
select
    *
from
    EVENTSignUp
where
    MemberEmail = @MemberEmail
");

SqlParameter param = new SqlParameter("@MemberEmail", SqlDbType.NVarChar);
param.Value = userInfo.Email;

command.Parameters.Add(param);

SqlDataAdapter dtResult1 = new SqlDataAdapter(command);
DataTable dtResult1 = new DataTable();
SQLDataAdapter1.Fill(dtResult1);

Вы также можете проверить это с помощью SqlDataReader, Вот простой пример, чтобы проверить, SqlDataReader имеет результат или нет по этому:

String con_string = "Your Connection String Here";
String strSQL = "Your Query Here";
using (SqlDataReader objNameDR = SQLHelper.ExecuteReader(con_string, CommandType.Text, strSQL, null)) {

    if (objNameDR.HasRows) {
        // Having Rows
    }
    else{
       // Having No Row (Zero Record)
    }

}
Другие вопросы по тегам