2

StronglyTyped データ Row オブジェクトがあり、このようにアクセスできます。

accountFilter.Currency_ID

Currency_ID (整数型) は行名です。AccountFilter は DataRow です。それが値を与えるとき、問題はありません。ただし、列の値が NULL の場合、DBNull 例外が発生します。DBNull の値を確認したいのですが、うまくいきません。

bool a = Convert.IsDBNull(accountFilter.Currency_ID.ToString()); //doesnt work

これら例はどれも機能しません。

解決策はありますか?

4

2 に答える 2

4

通常、型指定されたデータ セットのテーブル内の行には、IsXYZNull()NULL 値を許容するすべての列に対するメソッドがあります。やってみました

bool a = accountFilter.IsCurrency_IDNull();

accountFilterただし、これは が型ではなく、型付きデータ セットDataRowの特殊なデータ行型である場合にのみ機能します。

例: という名前のテーブルを含む型付きデータ セットがあるTest場合、特殊化されたテーブル クラスTestTableと という名前の特殊化されたデータ行クラスが存在しTestTableRowます。Testテーブルに null 許容フィールドが含まれている場合TestFieldTestTableRowクラスにはメソッドが含まれているIsTestFieldNull()ため、呼び出すことができます

bool isnull = testTable[0].IsTestFieldNull();

TestFieldの最初の行のフィールドが であったTestTable testTableかどうかを判断しnullます。

TestTableRow結果は type ではなく typeであるため、次は機能しないことに注意してくださいDataRow。したがって、これを にキャストする必要がありますTestTableRow

bool isnull = testTable.Rows[0].IsTestFieldNull(); // Won't compile
bool isnull = ((TestTableRow)testTable.Rows[0]).IsTestFieldNull(); // Will compile because of cast
于 2013-01-30T14:29:59.673 に答える
0

こちらからご確認いただけますでしょうか。

accountFilter.Fields["Currency_ID"]
于 2013-01-30T14:26:07.640 に答える