8 ответов:
foreach (DataRow dr in dataTable1.Rows) { if (/* some condition */) dataTable2.Rows.Add(dr.ItemArray); }В приведенном выше примере предполагается, что
dataTable1иdataTable2имеют одинаковое количество, тип и порядок столбцов.
копировать указанные строки из таблицы в другую
// here dttablenew is a new Table and dttableOld is table Which having the data dttableNew = dttableOld.Clone(); foreach (DataRow drtableOld in dttableOld.Rows) { if (/*put some Condition */) { dtTableNew.ImportRow(drtableOld); } }
Попробуй Такое
String matchString="ID0001"//assuming we have to find rows having key=ID0001 DataTable dtTarget = new DataTable(); dtTarget = dtSource.Clone(); DataRow[] rowsToCopy; rowsToCopy = dtSource.Select("key='" + matchString + "'"); foreach (DataRow temp in rowsToCopy) { dtTarget.ImportRow(temp); }
проверьте это, вам может понравиться (ранее, пожалуйста, клонируйте table1 в table2):
table1.AsEnumerable().Take(recodCount).CopyToDataTable(table2,LoadOption.OverwriteChanges);или:
table1.AsEnumerable().Where ( yourcondition ) .CopyToDataTable(table2,LoadOption.OverwriteChanges);
поддерживается в: 4, 3.5 SP1, теперь вы можете просто вызвать метод на объекте.
DataTable dataTable2 = dataTable1.Copy()
в результате других сообщений, это самый короткий я мог бы получить:
DataTable destTable = sourceTable.Clone(); sourceTable.AsEnumerable().Where(row => /* condition */ ).ToList().ForEach(row => destTable.ImportRow(row));
ниже образца будет самый быстрый способ скопировать одну строку. каждая ячейка копируется на основе имени столбца. если вам не нужна конкретная ячейка для копирования, попробуйте поймать или добавить, если. если вы собираетесь скопировать более 1 строки, то цикл код ниже.
DataRow dr = dataset1.Tables[0].NewRow(); for (int i = 0; i < dataset1.Tables[1].Columns.Count; i++) { dr[dataset1.Tables[1].Columns[i].ColumnName] = dataset1.Tables[1].Rows[0][i]; } datasetReport.Tables[0].Rows.Add(dr);dataset1.Таблицы[1].Строки[0][i]; измените индекс 0 на указанный индекс строки или вы можете использовать переменную, если ваш цикл будет циклическим или если он будет логическим
private void CopyDataTable(DataTable table){ // Create an object variable for the copy. DataTable copyDataTable; copyDataTable = table.Copy(); // Insert code to work with the copy. }
Comments