Asp.net DataTableで特定の行を取得し、それを列column1
値に基づいてこのDataTableベースの最初の行に移動したいと思います。私のデータテーブルdt1
はDBクエリを介して入力され、検索する値は別のDBからの別のクエリを介しているため、dt1 select
時に検索する値がわかりません。
// I use this variable to search into
// DataTable
string valueToSearch = "some value";
したがって、値some value
をDataTableの列column1
で検索する必要があります。次に、行全体を最初の位置に移動します。
ありがとうございました。
前に行データのクローンを作成する必要があります。
DataRow[] dr = dtable.Select("column1 ='" + valueToSearch +"'");
DataRow newRow = dtable.NewRow();
// We "clone" the row
newRow.ItemArray = dr[0].ItemArray;
// We remove the old and insert the new
ds.Tables[0].Rows.Remove(dr[0]);
ds.Tables[0].Rows.InsertAt(newRow, 0);
これでパフォーマンスをテストする必要がありますが、これを行う1つの方法は、クエリ自体です。最初に必要な行を一番上に取得し、それを残りの行と組み合わせます。
私はあなたのデータベースについて何も知らないので、これを行う一般的な方法は次のとおりです。
SELECT Column1, Column2, Column3
FROM MyTable
WHERE Column1 = 'some value'
UNION
SELECT Column1, Column2, Column3
FROM MyTable
WHERE Column1 <> 'some value'
検索された値のレコードが列に1つしかない場合は、これを試してください
DataRow[] dr = dtEmp.Select("column1 ='" + valueToSearch +"'");
myDataTable.Rows.InsertAt(dr[0], 0);