0

このエラーが発生します:データを読み取ることができませんでした。データはNullです。このメソッドまたはプロパティは、Null値では呼び出すことができません。

データベースの一部のフィールドにNULL値があることを知っています。それらを処理して、次の行に入力し続けたいだけです。ここにいくつかのコードがあります:

rdrはSqlDataReaderです

if (rdr[EmailID] != null)
{
     //this blows up on this line on the 32nd iteration of the loop when searching for an extended group.
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue(rdr.GetString(EmailID));
 }
 else
 {
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue("No.Email");
 }

これはストアドプロシージャで処理できますが、この処理方法を本当に知りたいです。上記は、私が試した多くの反復の1つです。ありがとう。

4

1 に答える 1

0

私はこれを理解しました。IsDBNull がそれを処理しているようです。デバッグでコードを実行して、序数がどこにあるかを確認しました。この場合は14でした。

int EmailID = rdr.GetOrdinal("EmailID");

Then when using GetString:

if (!(rdr.IsDBNull(14)))
{
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue(rdr.GetString(EmailID));
}
else
{
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue("No Email");
}

これが誰かに役立つことを願っています。

于 2012-06-08T13:46:19.173 に答える