C# 使用dataview将数据行导入datatable

C# 使用dataview将数据行导入datatable,c#,asp.net,datatable,C#,Asp.net,Datatable,我想将数据视图中的一行插入到数据表中。我使用以下代码将dataview插入datatable,但它返回一个错误 Unable to cast object of type 'System.Data.DataRowView' to type 'System.Data.DataRow'. 这是我的部分代码: string empid= lbxempname.Items[i].Text.Substring(0,8); DataView dv = new DataView(); dv = DS.Def

我想将数据视图中的一行插入到数据表中。我使用以下代码将dataview插入datatable,但它返回一个错误

Unable to cast object of type 'System.Data.DataRowView' to type 'System.Data.DataRow'.
这是我的部分代码:

string empid= lbxempname.Items[i].Text.Substring(0,8);
DataView dv = new DataView();
dv = DS.DefaultView;
dv.RowFilter = "fldempid='" + empid + "'";
foreach (DataRow Dr in dv) {
  DST.ImportRow(Dr);
}

DataView
包含
DataRowViews
,该属性引用了
DataRow

foreach (DataRowView drv in dv)
{
    DataRow dr = drv.Row;
}
但如果该行属于另一个数据表,则无法将其导入到数据表中。我将使用
linqtodataset
来过滤您的行,并从中创建一个新的
DataTable

例如:

DataTable tblFiltered = DS.AsEnumerable()
                          .Where(r => r.Field<string>("fldempid") == empid)
                          .CopyToDataTable();
DataTable tblFiltered=DS.AsEnumerable()
其中(r=>r.Field(“fldempid”)==empid)
.CopyToDataTable();
这会有帮助吗

foreach (DataRow row in dv)
{
    dt.LoadDataRow(row.ItemArray);
}
试试这个:

DST = dv.ToTable();
这一行代码在您为DataView设置过滤器之后执行。

试试这个

DataView dview = new DataView();
DataTable dtable = new DataTable();
dtable = dview.Table.Clone();
foreach(DataRowView drowview in dview)
dtable.ImportRow(drowview.Row);

您是否尝试过此
MyDataTable.Rows.Add(MyDataView.Item(0.DataRow.ItemArray)