0

我有以下代码

  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);

我如何确定此查询是否没有返回记录?

4

3 回答 3

3
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);
于 2009-08-18T07:34:07.050 回答
2

我认为问题不在 SqlDataAdapter 返回的记录中,因为即使它是空的,它也不会产生异常。您查询中的问题,因为电子邮件字段是 varchar,它应该是这样的:

SqlDataAdapter SQLDataAdapter1 = new SqlDataAdapter("SELECT * FROM EVENTSignUp WHERE (MembmerEmail = '" + userInfo.Email + "')", conn);
于 2009-08-18T07:38:18.307 回答
0

您也可以使用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)
    }

}
于 2017-01-17T14:31:47.253 回答