joe*_*joe 183
对于.Net Framework 3.5+
DataTable dt = new DataTable();
DataRow[] dr = dt.Select("Your string");
DataTable dt1 = dr.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
但是如果数组中没有行,则可能导致错误,例如source不包含DataRows.因此,如果您决定使用此方法CopyToDataTable()
,则应检查数组以确定它是否具有数据行.
if (dr.Length > 0)
DataTable dt1 = dr.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
MSDN上提供的参考: DataTableExtensions.CopyToDataTable方法(IEnumerable)
Jay*_*ggs 88
为什么不通过你的DataRow数组进行迭代,并添加(使用DataRow.ImportRow,如果必要的话,得到的DataRow的副本),是这样的:
foreach (DataRow row in rowArray) {
dataTable.ImportRow(row);
}
Run Code Online (Sandbox Code Playgroud)
确保您的dataTable与DataRow阵列中的DataRows具有相同的架构.
Mit*_*eat 11
DataTable dt = new DataTable();
DataRow[] dr = (DataTable)dsData.Tables[0].Select("Some Criteria");
dt.Rows.Add(dr);
Run Code Online (Sandbox Code Playgroud)
ila*_*ans 11
另一种方法是使用DataView
// Create a DataTable
DataTable table = new DataTable()
...
// Filter and Sort expressions
string expression = "[Birth Year] >= 1983";
string sortOrder = "[Birth Year] ASC";
// Create a DataView using the table as its source and the filter and sort expressions
DataView dv = new DataView(table, expression, sortOrder, DataViewRowState.CurrentRows);
// Convert the DataView to a DataTable
DataTable new_table = dv.ToTable("NewTableName");
Run Code Online (Sandbox Code Playgroud)
简单的方法是:
// dtData is DataTable that contain data
DataTable dt = dtData.Select("Condition=1").CopyToDataTable();
// or existing typed DataTable dt
dt.Merge(dtData.Select("Condition=1").CopyToDataTable());
Run Code Online (Sandbox Code Playgroud)
小智 5
DataTable dt = myDataRowCollection.CopyToDataTable<DataRow>();
Run Code Online (Sandbox Code Playgroud)
小智 5
DataTable dt = new DataTable();
foreach (DataRow dr in drResults)
{
dt.ImportRow(dr);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
DataTable Assetdaterow =
(
from s in dtResourceTable.AsEnumerable()
where s.Field<DateTime>("Date") == Convert.ToDateTime(AssetDate)
select s
).CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)