試す:
Convert.IsDBNull(reader["Col1"]) ? "null" : reader["Col1"]
または、これを繰り返し使用する場合、これはおそらく、スコープが厳密な拡張メソッドの理想的な候補です。たとえば、次のようになります。
public static class ExtensionMethods
{
public static object GetValueOrNull(this SqlDataReader reader, string key)
{
return Convert.IsDBNull(reader[key]) ? (object)"null" : reader[key];
}
}
したがって、次のように書くことができます。
var valueOfReader = reader.GetValueOrNull("Col1");
1回の呼び出しでこのロジックを複数回使用する必要がある場合、これは間違いなく物事を整理しますStringBuilder.AppendFormat
:
while (reader.Read())
{
sb.AppendFormat("{0},{1},{2},",reader.GetValueOrNull("Col1"), reader.GetValueOrNull("Col2"), reader.GetvalueOrNull("Col3"));
}