我有这个代码:
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/