C# SQLDataReader如何检查空列值?

C# SQLDataReader如何检查空列值?,c#,.net,ado.net,sqlclient,C#,.net,Ado.net,Sqlclient,我正在使用SQLDataReader将列数据插入字符串[] 但是,某些列值为空。我有点不确定如何检查这一点,因为当我检查reader[column_pos]时,它会显示值为“n/a” 我可以执行哪些检查,以便执行以下操作: for(int i=0; i<myarray.Length;i++){ if(something){ myarray[i] = reader[i]; } else { myarray[i] = "";

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

但是,某些列值为空。我有点不确定如何检查这一点,因为当我检查reader[column_pos]时,它会显示值为“n/a”

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

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

for(int i=0;i您可以使用

对于(int i=0;i您也可以使用
if(reader[0]==DBNull.Value)
。如果您可以控制查询的运行,您也可以使用SQL
ISNULL(field,default\u Value)
函数来确保列返回值

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

myArray[i] = (reader[i] == DBNull.Value) ? "" : reader[0];
这转换为:如果读卡器值为
DBNULL
,则使用
,否则使用读卡器值。

您也可以使用
If(reader[0]==DBNULL.value)
。如果您可以控制查询的运行,您也可以使用SQL
ISNULL(字段,默认值)
函数以确保列返回值

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

myArray[i] = (reader[i] == DBNull.Value) ? "" : reader[0];
这转换为:如果读取器值为
DBNULL
,则使用
“”
,否则使用读取器值。

类具有该属性

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

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

    } }
for(int i=0;i类具有该属性

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

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[i] = reader.IsDBNull(i) || reader[i] == DBNull.Value ? string.Empty : reader[i];