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値を入力したとき、およびユーザーが実際にデータベースにいるとき、これは完全に機能しています。しかし、データベース内にそのようなユーザーがいない場合、null 例外が発生しました。彼がデータベースにいない場合、不明なユーザーを書き込むためにこれを作成する必要があります。

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 に答える