2

我有这个代码:

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

4

1 回答 1

1

如果没有给定 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
}
于 2012-06-12T15:44:24.887 回答