使用SQL Command对象中的ExecuteScalar方法,如何检查结果集是否为空?我正在使用 ASP.net、C# 和 MS SQL 2008。现在,当我运行以下代码时,当结果集为空时,Response.Write 返回 0。但我想区分 0 和空结果集,因为我的数据库中有实际的 0 值。

这是当前的代码:

cmd = new SqlCommand("usp_test", cn);
cmd.CommandType = CommandType.StoredProcedure;

cn.Open();
TestOuput = Convert.ToInt32(cmd.ExecuteScalar());
cn.Close();

Response.Write(TestOutput);

谢谢你。

最佳答案

查看 ExecuteScalar 的定义。它返回一个对象,如果结果集为空,它将有一个空引用。

您看到零的原因是 Convert.ToInt32 在给定 null 时返回零。在将其转换为 ExecuteScalar 之前,您需要检查 int 的返回值。

关于c# - 使用SQL Command对象,如何检查结果集是否为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/722462/

10-12 20:11