0

目的は、行をDataTableの最初の位置に移動することです。そのため、行を取得したら、それを削除してから、最初の位置に挿入します。

 DataRow[] dr = DataSet1.Tables[0].Select("field1 = HELLO");

 DataSet2.Tables[0].Rows.Remove(dr[0]); // Here dr[0] is removed. Why?
 DataSet2.Tables[0].Rows.InsertAt(dr[0], 0); // Now a null value is inserted

2行目では、値をde DataTableに削除dr[0]し、パラメーターとして渡されたため、最初の位置に挿入できません。

4

2 に答える 2

1

これは、dr[0] が単なる参照であるためです。クローンを作成してから削除する必要があります。

于 2012-12-11T18:50:55.993 に答える
0

以下のロジックを試してください...

var row = DataSet2.Tables[0].Select("field1 = HELLO").First();
var oldIndex = DataSet2.Tables[0].Rows.IndexOf(row);
DataSet2.Tables[0].Rows.InsertAt(row, 0);
DataSet2.Tables[0].Rows.RemoveAt(oldIndex);

これは単なるロジックです.. nullチェックと例外処理を無視しました

于 2012-12-11T19:04:30.317 に答える