从 SqlCommand.ExecuteScalar() 调用返回非空值后,我是否需要在转换为字符串后检查空字符串

本文关键字:字符串 是否 转换 检查 ExecuteScalar SqlCommand 调用 空值 返回 | 更新日期: 2023-09-27 18:26:18

object check;
string q = "query details";
using (SqlCommand cmd = new SqlCommand(q, sc))
{
    try
    {
        sc.Open();
        check = cmd.ExecuteScalar();
        sc.Close();
    }
    catch (Exception e)
    {
        // Alert user, continue execution;
        CloseConnectionIfOpen(sc);
        return s;
    }
    if (check == null)
    {
        // Alert user, continue execution;
        return s;
    } 
    else
    {
        stringvariable = check.ToString();
    }
}

我现在是否需要检查stringvariable是否为空字符串,或者我可以保证它至少有 1 个字符吗?

如果我能保证字符串不为空,那么继续尝试从ExecuteScalar()强制转换返回并捕获异常是否更有意义?

从 SqlCommand.ExecuteScalar() 调用返回非空值后,我是否需要在转换为字符串后检查空字符串

来自 :https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar(v=vs.80(.aspx

返回值
结果集中第一行的第一列,或 null 如果结果集为空,则引用。

因此,无需检查字符串变量中的空字符串。

关于第二个问题。您不应该期待例外。异常是意想不到的事情。如果您知道 SQL 查询可能会失败,那么您应该主动并显式测试检查 != 是否为 null。