2012-04-16 8 views
0

データ行フィルタ値をデータテーブルに挿入したいが、 "この行はすでに別のテーブルに属している"というエラーを返します。私はこのエラーを修正するために助けてください..datarowフィルタ値からデータテーブル

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

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(); 
+0

http://stackoverflow.com/questions/722052/this-row-already-belongs-to-another-table-error-when-trying-to-add-rows – Rawling

答えて

0

あなたは、MSDNからImportRow

DT.Rows.ImportRow(row); 

情報を使用することができます呼び出しNewRowはに行を追加します を使用して既存のテーブルスキーマを使用しますが、行の既定値を使用します。 は、追加するDataRowStateを設定します。 ImportRowを呼び出すと、既存のDataRowStateが行内の他の値と一緒に保持されます( )。パラメーターとして渡された DataRowがdetached状態にある場合は、それは無視され、例外はスローされません。 がスローされます。

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

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

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

リファレンスhere

関連する問題