13

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。行全体を最初の位置に移動します。

ありがとうございました。

4

3 に答える 3

33

次の前に、行データを複製する必要があります。

            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);
于 2012-12-12T12:20:31.913 に答える
1

これでパフォーマンスをテストする必要がありますが、これを行う 1 つの方法は、クエリ自体です。最初に必要な行を取得し、それを残りの行と結合します。

私はあなたのデータベースについて何も知らないので、これを行う一般的な方法は次のとおりです。

SELECT Column1, Column2, Column3
FROM MyTable
WHERE Column1 = 'some value'

UNION

SELECT Column1, Column2, Column3
FROM MyTable
WHERE Column1 <> 'some value'
于 2012-12-11T18:20:04.873 に答える
-1

列に検索された値のレコードが1つしかない場合は、これを試してください

DataRow[] dr = dtEmp.Select("column1 ='" + valueToSearch +"'");
myDataTable.Rows.InsertAt(dr[0], 0);
于 2012-12-11T18:05:23.213 に答える