如何通过列的名称检查MySqlDataReader中的NULL?

rd4*_*d42 18 c# mysql null dbnull mysqldatareader

如何NULL在空旷地区检查价值MySqlDataReader

以下不起作用; 它始终击中else:

if (rdr.GetString("timeOut") == null)
{
    queryResult.Egresstime = "Logged in";
}
else
{
    queryResult.Egresstime = rdr.GetString("timeOut");
}
Run Code Online (Sandbox Code Playgroud)

rdr.IsDbNull(int i) 只接受列号,而不是名称.

Via*_*nov 32

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

要么

if(Convert.IsDBNull(rdr["timeOut"])) {
  queryResult.Egresstime = "Logged in";
} else {
  queryResult.Egresstime = rdr.GetString("timeOut");
}//if
Run Code Online (Sandbox Code Playgroud)


Axa*_*dax 14

if(rdr.GetString("timeOut")== DBNull.Value)

null 是不一样的 DBNull

对不起,错误的回答,Sam B是对的.我误解了这个问题DataRow.

SqlDataReader确实有强类型GetString()并提供IsDBNull(int column)了这种情况.

  • 我认为它应该是`DBNull.Value` (2认同)