c#+DataRow+数据行复制
时间: 2024-11-25 18:20:48 浏览: 18
在C#中,`DataRow` 是 `DataTable` 对象中的一行,用于存储表中的单条记录。如果你需要复制`DataRow`,你可以通过以下几种方式:
1. **浅拷贝** (Shallow Copy): 如果只是想创建一个新的`DataRow`引用相同的原始数据,可以使用构造函数`DataRow(DataRow row)`, 这样不会复制整个数据集,只是引用了原有的数据。
```csharp
DataRow originalRow = table.Rows[0];
DataRow copiedRow = new DataRow(originalRow);
```
在这个例子中,`copiedRow` 和 `originalRow` 共享相同的底层数据。
2. **深拷贝** (Deep Copy): 如果你需要完整复制所有字段及其值,并创建独立的数据行,可以先获取所有字段的`DataColumn`,然后逐个将它们的值赋给新的`DataRow`。
```csharp
DataTable dataTable = ...;
DataRow originalRow = dataTable.Rows[0];
List<DataColumn> columns = dataTable.Columns.Cast<DataColumn>().ToList();
DataRow newRow = dataTable.Clone(); // 创建新行
foreach (DataColumn column in columns)
{
newRow[column.ColumnName] = originalRow[column.ColumnName].Clone();
}
```
这里使用了`.Clone()`方法对每个字段的值进行了复制。
阅读全文