c# - 未找到结果时处理 ExecuteScalar 返回 null

标签 c# sql sql-server

我得到的代码可能没有返回任何结果 - null

 String result
 string searchUby = "SELECT text FROM rooms WHERE year=@year AND event=@eventAND text=@text AND z is NULL";
                SqlCommand sqlcom = new SqlCommand(searchUby, conn);
                sqlcom.Parameters.AddWithValue("@event",event.Text);
                sqlcom.Parameters.AddWithValue("@text", cb_room.SelectedItem);
                sqlcom.Parameters.AddWithValue("@year",klientClass.Year());
                conn.Open();                  
                result = sqlcom.ExecuteScalar().ToString(); // on this line ex occurs

                conn.Close();

我得到这个异常:

NullReferenceException: Object reference not set to an instance of an object. 

有人可以帮我解决这个问题吗?

最佳答案

试试这个:

result = (sqlcom.ExecuteScalar() ?? "").ToString();

如果它返回null,结果将是一个空字符串。您可以通过 if 语句处理这种情况,并向用户通知一些消息,例如:

object r = sqlcom.ExecuteScalar();  
if(r != null) result = r.ToString();
else {
  //code to handle the null case here...
}

关于c# - 未找到结果时处理 ExecuteScalar 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20295685/

相关文章:

C# - 使用 XmlDocument 进行 Xml 操作

c# - 重命名命名空间后无效的 .resx 文件

sql-server - 更改 SQL Server 连接上的应用程序名称

c# - 具有 SQL Server 输出 bigint 参数的 Dapper 返回 int32

c# - 从 C# 代码隐藏动态添加到 DIV 标签的链接

c# - TreeView 验证

php - 如何防止 PHP 中的 SQL 注入(inject)?

sql - 基于 foreign_key 的百分比

php - CodeIgniter SQL查询错误处理

sql - SQL Server 2005 中的内置数据库角色允许执行存储过程吗?