タイプの列を持つ SQL テーブルがあり、nvarchar(20)
を使用してその列を読み取りたいと考えていますSqlDataReader
。これを行う唯一の方法は、GetSqlChars()
続いて使用することToSqlString()
です:
String result = reader.GetSqlChars(index).ToSqlString().Value
問題は、保存された値がたまたまnullの場合(そしてそれは私の場合に有効です)、私が得ることです
[SqlNullValueException: Data is Null. This method or property cannot be called on Null values.]
System.Data.SqlTypes.SqlString.get_Value() +3212527
そのため、最初に で返される値を確認する必要がありToSqlString()
ますIsNull()
。
SqlString asSqlString = reader.GetSqlChars(index).ToSqlString();
String result = asSqlString.IsNull() ? null : asSqlString.Value;
これは機能しますが、多くの余分なコードが必要であり、本当に洗練されていません。
同じ効果を達成するためのよりエレガントな方法はありますか?