如何在c#中将DataRow转换为DataRowView

本文关键字:转换 DataRowView DataRow 中将 | 更新日期: 2023-09-27 18:05:58

能否或如何将DataRow转换为DataRowView?

例如:

   DataTable dt=ds.Tables[0];
   DataRow dr= dt.NewRow();           
   DataRowView drv = ???? 

如何在c#中将DataRow转换为DataRowView

使用

DataTable dt=ds.Tables[0];
DataRow dr= dt.NewRow();         
DataRowView drv= dt.DefaultView[dt.Rows.IndexOf(dr)];

如果DataRow状态为Detached,则上述方法不起作用。这个代码片段可以用于这种情况:

        DataRow dRow = dataTable.NewRow();
        //...
        DataRowView dRowView = dRow.Table.DefaultView.AddNew();
        for (int i = 0; i < dRow.ItemArray.Length; i++)
        {
            dRowView.Row[i] = dRow[i];
        }
DataRowView selecRow = dataTable.DefaultView.Cast<DataRowView>().FirstOrDefault(a => a.Row == desRow);

有效,这是一个不带"where"的litte短;-(

使用。如果DataGrid是有序的,它也可以工作。

DataRowView selecRow = dataTable.DefaultView.Cast<DataRowView>().Where(a => a.Row == desRow).FirstOrDefault();