0

データ行フィルター値を datatable に挿入したいのですが、「この行は既に別のテーブルに属しています」というエラーが返されます。このエラーを修正するのを手伝ってください..

これは私の部分的なコードです:

  for (int j = 0; j < ListBox1.Items.Count; j++)
                {
                    DataView DV = new DataView();
                    DV = DS1.DefaultView;
                    DV.RowFilter = "fldemployee='" + ListBox1.Items[j].Text + "' and fldassigndate = '04-07-2012'";
                    if (DV.Count > 0)
                    {
                        DataTable table = DV.ToTable("sp_getallattendancesetup");
                        DataRow row = table.Rows[0];
                        DT.Rows.Add(row);

                    }

                }

                GridView1.DataSource = DT;
                GridView1.DataBind();
4

1 に答える 1

0

使用できますImportRow

DT.Rows.ImportRow(row);

msdn からの情報: NewRow を呼び出すと、既存のテーブル スキーマを使用してテーブルに行が追加されますが、行の既定値が使用され、DataRowState が Added に設定されます。ImportRow を呼び出すと、既存の DataRowState が行の他の値と共に保持されます。パラメーターとして渡された DataRow がデタッチされた状態の場合、それは無視され、例外はスローされません。

新しい行がデータ テーブルの最後に追加されます。

新しい行が制約に違反する場合、データ テーブルに追加されません。

as DataTable.Rows.Find および DataTable.Rows.IndexOf を使用して、新しい行のインデックスを取得できます。詳細については、DataRowCollection と行を参照してください。

ここを参照

于 2012-04-16T09:49:59.337 に答える