空结果查询条件

本文关键字:条件 查询 结果 | 更新日期: 2023-09-27 18:14:26

我写了这个SQL查询:

 SqlCommand cmd2 = new SqlCommand();
        cmd2.Connection = new SqlConnection(Class1.CnnStr);
        cmd2.CommandText = "SELECT MAX(Code) FROM Table WHERE Number=@Number ";
        cmd2.Connection.Open();
        cmd2.Parameters.AddWithValue("@Number", Hidden_txt.Text);
        cmd2.ExecuteNonQuery();

,我想添加一些if条件,如:

if (cmd2.ExecuteScalar()=="Null")
{....}

当我的查询没有答案时,我如何添加if条件?

空结果查询条件

删除对cmd2的调用。执行tenonquery,然后添加如下内容:

object maxCode = cmd2.ExecuteScalar();
if (maxCode == null)
{
    // Null
}
else
{
    // do something with maxCode, you probably want to cast - e.g. (int)maxCode
}

您可以这样使用阅读器:

这里假设Code的类型是整数,所以根据需要修改

SqlDataReader reader = cmd2.ExecuteReader;
int code = 0;
if (reader.Read) {
     //whatever if it has a result
     code = reader.GetInt32(0);
} else {
    //Whatever if it finds nothing
}

根据MSDN:

如果没有找到结果集中第一行的第一列,则返回空引用(在Visual Basic中为Nothing)。如果数据库中的值为空,则查询返回DBNull.Value.

所以,你可以直接写:

if (cmd2.ExecuteScalar() == null)
{....}

或者,您可以使用ExecuteReader,然后检查是否返回reader HasRows.