|
分類:[.NET 全般]
お世話になっております。
スレッド[55621]から立て続けで申し訳ありませんが、DataTableについてご教授願いします。
SQLサーバ上のAテーブルから一度絞り込んで取得したDataTableから、
更に絞りこみをかけることは出来るのでしょうか?
--- Aテーブル BuNo, Data1, Data2, UpDateTime 1, 'data1','data2', 'YYYY/MM/DD' 2 2 3 3 3 … --- 日に一度実行される常駐プログラムからSQLサーバのデータをAccessMDBへ取りこんでいます。 最初にUpDateTimeが本日以上のデータをDataTableに格納しております。 このデータをAccessMDB(YYYYMMDD_x.mdb)へインサートしたいのですが、膨大なデータのため、 Accessが1.5Gになったらファイル名の最後(x)をインクリメントして別ファイルへ書込みます。 (Accessのファイル制限約2G)
この際、処理を重複することがあるBuNoごとに処理したい(ファイルサイズをBuNoごとにチェック)ので、 一度日付で絞り込みをかけたDataTableから、再度BuNoで絞り込みたいと考えています。
1.日付で絞り込みんだDataTable SqlDataAdapter adapter = new SqlDataAdapter(); DataTable dataTable = new DataTable(); adapter.SelectCommand = new SqlCommand("日付で絞りこみのSQLクエリ", connection); nNumOfBuNo = adapter.Fill(dataTable);
2. for ( int i = 1; i <= nNumOfBuNo; i++ ) //iはBuNoごとの処理 { //ここで更にBuNoで絞りこんで、該当するBuNoをMDBへインサートしたい //nNumOfBuNoは日付で絞りこみ済みのBuNoの総数
}
1.にて一度絞りこんだDataTableから該当するBuNo(複数時あり)のデータのみを取得することは可能でしょうか? 可能な場合、例えばi=3の場合に該当するデータは3つありますが、 DataTableからこの3データをどのように再絞り込みするのでしょうか? (可能であれば取得したデータの任意のデータを表示する方法も御指南頂けると幸いです。)
無理である場合、2の処理で、再び1での処理のように毎回データを取得しなおす方法しかありませんでしょうか? またその際、パフォーマンスの心配などがありましたら教えて頂けると助かります。
--- VS2010 .NetFramework2.0 Win32 C#プログラムからのみ実装
|