问题
Can or how to convert DataRow to DataRowView?
For example:
DataTable dt=ds.Tables[0];
DataRow dr= dt.NewRow();
DataRowView drv = ????
回答1:
Use
DataTable dt=ds.Tables[0];
DataRow dr= dt.NewRow();
DataRowView drv= dt.DefaultView[dt.Rows.IndexOf(dr)];
回答2:
The above method does not work if the DataRow status is Detached. This code snippet could be used in such case:
DataRow dRow = dataTable.NewRow();
//...
DataRowView dRowView = dRow.Table.DefaultView.AddNew();
for (int i = 0; i < dRow.ItemArray.Length; i++)
{
dRowView.Row[i] = dRow[i];
}
回答3:
DataRowView selecRow = dataTable.DefaultView.Cast<DataRowView>().FirstOrDefault(a => a.Row == desRow);
works, this is a litte shorter without "where" ;-)
回答4:
Use. It also works if the DataGrid is ordered.
DataRowView selecRow = dataTable.DefaultView.Cast<DataRowView>().Where(a => a.Row == desRow).FirstOrDefault();
来源:https://stackoverflow.com/questions/15632036/how-can-convert-datarow-to-datarowview-in-c-sharp