使用sql Command对象中的Execute
Scalar方法,如何检查结果集是否为空?我正在使用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的定义.它返回一个Object,如果结果集为空,它将具有空引用.
您看到零的原因是,当给定null时,Convert.ToInt32
返回零.在将其转换为int之前,需要检查ExecuteScalar的返回值.