dbから組織データを取得しようとしています。私はもう少しデータが必要ですが、私はちょうど組織名と組織アドレスに固執しています。私は、結合を含むクエリを実行しようとしている、私が作成したカスタムクラスのリストであるオブジェクトを作成します。奇妙なことは、whileループのコードにコメントして、orgの名前を取得するだけですが、オブジェクトのリストを作成しようとするとすぐに機能しません。ここでリストに追加するときにSqlDataReaderがすべての行を返さない<MyClass>
は、私は私のクラスで始まる、持っているものです:
namespace FFDFrameWorkPart
{
public class OrgData
{
public string orgName { get; set; }
public string orgAddress { get; set; }
}
}
List<OrgData> OrgObject = new List<OrgData>();
List<string> orgName = new List<string>();
using (SqlConnection connection = new SqlConnection(connectString))
{
connection.Open();
SqlCommand GrabOrgsFromDb = new SqlCommand(getConstitData, connection);
SqlDataReader reader = GrabOrgsFromDb.ExecuteReader();
try
{
while (reader.Read())
{
orgName.Add(reader.GetString(0));
OrgObject.Add(new OrgData()
{
orgName = reader.GetString(0),
orgAddress = reader.GetString(1)
});
}
}
catch (Exception ex)
{
consoleLog.Value = ex.ToString();
}
finally
{
reader.Close();
}
}
はI場合orgName.CountとOrgObject.Countでそのコードの結果が20
の近傍にあることを実行していますただコメントアウトする
OrgObject.Add(new OrgData()
{
orgName = reader.GetString(0),
orgAddress = reader.GetString(1)
});
次に、orgName.Countが約28,000にジャンプします。コードを変更する必要はありません。私のリストを作成しようとしている場所をコメントアウトするだけで、結果から約2万8000件のレコードが失われます。
EDIT:それはフィールドのいずれかにNULL値を押すと、あなたは列が存在しないか、欠損値が含まれているかどうかを確認するためにSqlDataReader.IsDBNull
を使用することができ
21行レコードの列1のデータソース内の問題がありますか?それはループを壊します。 – ydoow
ありがとうございました。 – reggieb