c# - 从 c# 连接到 mysql 给我空异常

标签 c# mysql database-connection

我有这个代码:

 con.Open();
 cmd = new MySqlCommand(String.Format("SELECT concat(name,'|',lastname) FROM {0} WHERE ID= ?Parname;", ConfigSettings.ReadSetting("my_data")), con);
 cmd.Parameters.Add("?Parname", MySqlDbType.VarChar).Value = id_value;
 var tokens = ((String)cmd.ExecuteScalar()).Split('|');
 name = tokens[0];
 lastname = tokens[1];

当我输入 id 值并且当用户实际上在数据库中时,这工作得很好。但是当数据库中没有这样的用户时,我得到了空异常。如果他不在数据库中,我需要做这个给我写一个未知用户。

最佳答案

如果没有给定 id 的用户,ExecuteScalar 的返回值为 DBNull.Value :

var result = cmd.ExecuteScalar();
if (result != DBNull.Value)
{
    var tokens = ((String)result).Split('|');
    name = tokens[0];
    lastname = tokens[1];
}
else
{
    name = "unknown";
    lastname = "user";  // or whatever
}

关于c# - 从 c# 连接到 mysql 给我空异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000047/

相关文章:

c# - 使用 Entity Framework 5 和 MVC 4 的自定义查询

javascript - 在 html <div> 中显示 php 结果?

java - 我可以在不设置 Class.forName ("org.h2.Driver"的情况下连接到 h2 嵌入式数据库吗?

javascript - Breeze JS/ODATA : Casts can only be performed on entity types

c# - 我想在 winforms 列表框控件中检测一个项目双击。 【如何处理点击空白区域?】

php - 使用 MAMP 在 Mac OS 中通过终端连接到 MYSQLi

c++ - 如何将 C++ 与 MySQL 连接

java - 错误 [stderr](EJB 默认值 - 8)java.lang.ClassNotFoundException : org. sqlite.JDBC

c# - 如何在不注册控件的情况下访问用户控件的字段和方法?

c# - 在哈希表实现方面需要帮助