In program development, you sometimes need to convert datareader into a datatable. Here I have a piece of code for beginners to refer! /// <Summary>
/// Convert datareader to datatable
/// </Summary>
/// <Param name = "vdatareader"> pre-converted datareader </param>
/// <Returns> datatable </returns>
Public datatable [] datareadertodatatables (oledbdatareader vdatareader)
{
Arraylist tablearraylist = new arraylist ();
Do
{
Datatable newdatatable = new datatable ();
Datatable tableschema = vdatareader. getschematable ();
For (INT I = 1; I <= tableschema. Rows. Count; I ++)
Newdatatable. columns. add (tableschema. rows [I-1] ["columnname "〕. tostring (), system. type. getType (tableschema. rows [I-1] ["datatype "〕. tostring ()));
While (vdatareader. Read () = true)
{
Datarow newdatarow = newdatatable. newrow ();
For (INT I = 1; I <= vdatareader. fieldcount; I ++)
Newdatarow [I-1] = vdatareader [I-1];
Newdatatable. Rows. Add (newdatarow );
}
Tablearraylist. Add (newdatatable );
} While (vdatareader. nextresult () = true );
Datatable [] returndatatable = new datatable [tablearraylist. Count];
For (INT I = 1; I <= tablearraylist. Count; I ++)
Returndatatable [I-1] = (datatable) tablearraylist [I-1];
Return returndatatable;
}