Following Method will populate DataView from a DataReader
private DataView PopulateDataView(IDataReader
dataReader, string tableName)
{
DataTable
dataReaderTable = new DataTable(tableName);
try
{
for
(int count = 0; count < dataReader.FieldCount;
count++)
{
DataColumn
tempCol = new DataColumn(dataReader.GetName(count),
dataReader.GetFieldType(count));
dataReaderTable.Columns.Add(tempCol);
}
while
(dataReader.Read())
{
DataRow
dr = dataReaderTable.NewRow();
for
(int i = 0; i < dataReader.FieldCount; i++)
{
dr[i] =
dataReader.GetValue(dataReader.GetOrdinal(dataReader.GetName(i)));
}
dataReaderTable.Rows.Add(dr);
}
return
dataReaderTable.DefaultView;
}
catch
{
return
null;
}
}

Z RPosted Jul 31, 2009, 2:10 AM
I think thats a bit too complex. The same result is achived by the following code: The columns are built automatically from the datasource if no columns are contained in the DataTable. private DataView PopulateDataView(IDataReader dataReader, string tableName)<o:p></o:p> { DataTable dt = new DataTable(tableName); dt.Load(dataReader) return dt.DefaultView; }