2013-03-26 11 views

risposta

21

Usa

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

È necessario ricordare che se la vista predefinita è stata filtrata, gli indici potrebbero non essere allineati. Soluzione simile http://stackoverflow.com/a/6989851/2122718 – marbel82

2

Il metodo di cui sopra non funziona se lo stato DataRow è staccato. Questo frammento di codice potrebbe essere utilizzato in questo caso:

 DataRow dRow = dataTable.NewRow(); 
     //... 
     DataRowView dRowView = dRow.Table.DefaultView.AddNew(); 

     for (int i = 0; i < dRow.ItemArray.Length; i++) 
     { 
      dRowView.Row[i] = dRow[i]; 
     } 
+0

caro @Subramani, grazie per il tuo aiuto, e per favore se questa domanda è utile imposta il voto – Ali

0

Usa. Funziona anche se il DataGrid è ordinato.

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