現在、C# で記述された WPF アプリケーションでデータベースからレコードを取得しようとしています。私は SQL データ リーダーを使用しており、問題なく接続しているように見えますが、次のようにすると NullReferenceException が発生します。
if (isString == true)
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT PartNumber FROM LoanerItems", loanersConnection);
DataTable datatable = new DataTable();
adapter.Fill(datatable);
for (int i = 0; i < datatable.Rows.Count - 1; i ++)
{
passBackRecords[i] = datatable.Rows[i].ToString();
}
}
繰り返しますが、データベースに接続しているように見えますが、デバッガーを実行すると、データテーブルがいっぱいに見えません。
それが役立つかもしれない場合の私の接続文字列:
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = "LLOYD2\\";
scsb.InitialCatalog = "LoanersTest";
scsb.IntegratedSecurity = true;
scsb.ConnectTimeout = 30;
現在、完成したデータベースではなく、2 つのレコードを含むテスト データベースを使用しています。Transact-SQL エディターを使用してみましたが、レコードは問題なく表示されます。
*編集:
passBackRecords を初期化した後、次は ArguementOutOfRange 例外をスローし始めました。
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM LoanerItems", loanersConnection);
DataTable datatable = new DataTable();
adapter.Fill(datatable);
for (int i = 0; i < datatable.Rows.Count - 1; i++)
{
passBackRecords[i] = datatable.Rows[i]["BCPartNumber"].toString;
}
私は両方を試しました:
for (int i = 0; i < datatable.Rows.Count - 1; i++)
と:
for (int i = 1; i < datatable.Rows.Count; i++)
しかし、どちらも機能していないようです。
datatable.Rows.Count;
データテーブルに 2 つの行があることを示します。