如何在打开的NULL中检查MySqlDataReader值?

以下内容无效;它总是命中else:

if (rdr.GetString("timeOut") == null)
{
    queryResult.Egresstime = "Logged in";
}
else
{
    queryResult.Egresstime = rdr.GetString("timeOut");
}
rdr.IsDbNull(int i)仅接受列号,而不接受名称。

最佳答案

var ordinal = rdr.GetOrdinal("timeOut");
if(rdr.IsDBNull(ordinal)) {
  queryResult.Egresstime = "Logged in";
} else {
  queryResult.Egresstime = rdr.GetString(ordinal);
}//if

或者
if(Convert.IsDBNull(rdr["timeOut"])) {
  queryResult.Egresstime = "Logged in";
} else {
  queryResult.Egresstime = rdr.GetString("timeOut");
}//if

关于c# - 如何通过列名在MySqlDataReader中检查NULL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4739641/

10-11 11:07