public static DataTable CreateTable (DataView obDataView ) { if ( null == obDataView ) { throw new ArgumentNullException ( "DataView", "Invalid DataView object specified" ); } DataTable obNewDt = obDataView. Table. Clone ( ); int idx = 0; string [ ] strColNames = new string [obNewDt. Columns. Count ]; foreach (DataColumn col in obNewDt. Columns ) { strColNames [idx++ ] = col. ColumnName; } IEnumerator viewEnumerator = obDataView. GetEnumerator ( ); while (viewEnumerator. MoveNext ( ) ) { DataRowView drv = (DataRowView )viewEnumerator. Current; DataRow dr = obNewDt. NewRow ( ); try { foreach ( string strName in strColNames ) { dr [strName ] = drv [strName ]; } } catch (Exception ex ) { Trace. WriteLine (ex. Message ); } obNewDt. Rows. Add (dr ); } return obNewDt; }