0

11 列と 100,000 行の datatable1 があります。列 1 のテキストが「1」で始まるかどうかを確認し、そうであれば、その行を 2 番目のデータテーブルに追加します。以下を実行しましたが、まだ機能しません..行が別のテーブルに属しているというエラーが表示されます

foreach (DataRow r in queryDataTable.Rows)
{
     if (r[0].ToString().StartsWith(queryString))
     {
          dt.ImportRow(r);                    
     }
}
4

2 に答える 2

1

for ループの代わりに、LINQ を使用して StartsWith の行を選択し、 CopytoDataTablequeryStringメソッドを使用して、選択した行の新しいテーブルを作成できます。

var NewTable = queryDataTable.AsEnumerable()
               .Where(r => r.Field<string>(0).StartsWith(queryString))
               .CopyToDataTable();

using System.Linq;上部に含めることを忘れないでください。

于 2012-12-06T09:24:20.227 に答える
1

あるテーブルの行を別のデータテーブルに直接インポートすることはできません。新しい行を作成してから、その行をコピーする必要があります。

これを試して -

dt.Rows.Add(r.ItemArray)
于 2012-12-06T09:24:38.087 に答える