我有以下代码
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);
如何确定此查询中是否没有返回记录?
答案 0 :(得分: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);
答案 1 :(得分:2)
我认为记录中的问题不是由SqlDataAdapter回溯,因为即使它是空的,它也不会产生异常。 查询中的问题,因为电子邮件字段是varchar,它应该是这样的:
SqlDataAdapter SQLDataAdapter1 = new SqlDataAdapter("SELECT * FROM EVENTSignUp WHERE (MembmerEmail = '" + userInfo.Email + "')", conn);
答案 2 :(得分: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)
}
}