SQLDataReader 如何检查空列值



我正在使用SQLDataReader将列数据插入到字符串[]中。

但是,某些列值为 null。我有点不确定如何检查这一点,因为当我做阅读器[column_pos]时,它说值为"n/a"。

我可以

执行哪些检查,以便我可以执行以下操作:

for(int i=0; i<myarray.Length;i++){
    if(something){
        myarray[i] = reader[i];
    }
    else
    {
        myarray[i] = "";
    }
}

并在列中存在空值时插入空白刺痛。

您可以使用 IsDBNull

for(int i=0; i<myarray.Length;i++){
    if(reader.IsDBNull(i)){
        myarray[i] = "";
    }
    else
    {
        myarray[i] = reader[i];
    }
}
您也可以

使用 if (reader[0] == DBNull.Value) .如果可以控制查询运行,也可以使用 SQL ISNULL(field, default_value) 函数来确保列返回值。

对于 C#,您还可以使用 if/else 速记:

myArray[i] = (reader[i] == DBNull.Value) ? "" : reader[0];

翻译为:如果读取器值为 DBNULL,则使用 "" ,否则使用读取器值。

SqlDataReader 类具有 IsDBNull 属性。

您可以按如下方式编写代码:

for(int i=0; i<myarray.Length;i++){
    if(myReader.IsDBNull(i)){
        myarray[i] = "";
    }
    else
    {
        myarray[i] = reader[i];
    } }

或者更好的是:

for(int i=0; i<myarray.Length;i++){
      myarray[i] = reader.IsDBNull(i) ? "" : reader[i];
}
myarray[i] = reader.IsDBNull(i) || reader[i] == DBNull.Value ? string.Empty : reader[i];

相关内容

  • 没有找到相关文章

最新更新