0

400 行 24 列のデータベースからテーブルをクエリする必要があります。このテーブルにクエリを実行して、各行と行の各列でC# コードを実行できるようにする必要があります (列情報を使用してコードを実行できます)。

現在、selectステートメントを使用してテーブルから各行を何度もクエリし、カスタムリストに保存してカスタム操作を実行しています。

それを行うための最良かつ最速の方法はありますか?または、テーブル全体を一度クエリしてどこかに保存する必要がありますか? データセットのどこにあるかわからない場合は、throw カスタム コードを実行して、各行の情報を使用して何らかの操作を行いますか?

4

6 に答える 6

2

データベースからテーブルを一度フェッチしてデータテーブルに保存し、linqを使用してこのような列を選択することができます

var data = dt.AsEnumerable().Select(s => s.Field<string>("myColumnName")).ToArray<string>();

コードのどこにも他の列を使用したくない場合は、データベースから有用な列のみを選択する必要があります。

linq を使用して、データベースの複数の列を選択することもできます。値は匿名型のオブジェクトに格納されます。

var mutipleData = from row
                  in dt.AsEnumerable()
                  select new 
                  { Value1 = row["Column1"].ToString(), 
                    Value2 = row["Column2"].ToString() 
                  };
于 2013-07-08T10:33:12.713 に答える
1
  • 気になるDBテーブルからすべてのレコードを選択します
  • 選択したレコードを DataTable にコピーします。

疑似コード:

--dt is datatable
foreach(datarow dr in dt.rows)
{
--perform operation
string str=dr["columnname"].tostring 
}
于 2013-07-08T10:33:01.607 に答える
0

レコード数が常に 1,000 未満の場合は、すべてのレコードをクエリして、それをリストに保持します。

データがリストに入ったら、LINQ を使用して、リクエストごとにデータベースにアクセスすることなく、リストを n 回クエリできます。

于 2013-07-08T10:49:21.430 に答える