把sqldatareader变成datatable的方法
2008-12-19 12:44
507 查看
public DataTable Convertdrtodt(SqlDataReader dr)
{
DataTable dataTable = new DataTable();//建一个新的实例
for(int i=0; i<dr.FieldCount;i++)
{
DataColumn mydc = new DataColumn();//关键的一步
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
dataTable.Columns.Add(mydc);//关键的第二步
}
while (dr.Read())
{
DataRow mydr = dataTable.NewRow();//关键的第三步
for (int i = 0; i < dr.FieldCount; i++)
{
mydr[i] = dr[i].ToString();
}
dataTable.Rows.Add(mydr);//关键的第四步
mydr = null;
}
dr.Close();
return (dataTable);//别忘了要返回datatable,否则出错
}
为什么说标注的几行是关键的,因为从这几行出发,可以迅速的完成所有代码,创建一个DataColumn实例(关键第一部),当然要添加了(关键第二步),你要添加当然这个实例要有内容,所有就需要有
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
这样整个函数前半部分可以解决了!
2、public static DataTable ConvertDataReaderToDataTalbe(IDataReader reader)
{
DataTable table = new DataTable();
for(int i = 0; i < reader.FieldCount; i++)
{
table.Columns.Add(reader.GetName(i), reader.GetFieldType(i));
}
table.BeginLoadData();
object[] values = new object[reader.FieldCount - 1];
while(reader.Read())
{
reader.GetValues(values);
table.LoadDataRow(values, true);
}
reader.Close();
table.EndLoadData();
return table;
}
{
DataTable dataTable = new DataTable();//建一个新的实例
for(int i=0; i<dr.FieldCount;i++)
{
DataColumn mydc = new DataColumn();//关键的一步
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
dataTable.Columns.Add(mydc);//关键的第二步
}
while (dr.Read())
{
DataRow mydr = dataTable.NewRow();//关键的第三步
for (int i = 0; i < dr.FieldCount; i++)
{
mydr[i] = dr[i].ToString();
}
dataTable.Rows.Add(mydr);//关键的第四步
mydr = null;
}
dr.Close();
return (dataTable);//别忘了要返回datatable,否则出错
}
为什么说标注的几行是关键的,因为从这几行出发,可以迅速的完成所有代码,创建一个DataColumn实例(关键第一部),当然要添加了(关键第二步),你要添加当然这个实例要有内容,所有就需要有
mydc.DataType = dr.GetFieldType(i);
mydc.ColumnName = dr.GetName(i);
这样整个函数前半部分可以解决了!
2、public static DataTable ConvertDataReaderToDataTalbe(IDataReader reader)
{
DataTable table = new DataTable();
for(int i = 0; i < reader.FieldCount; i++)
{
table.Columns.Add(reader.GetName(i), reader.GetFieldType(i));
}
table.BeginLoadData();
object[] values = new object[reader.FieldCount - 1];
while(reader.Read())
{
reader.GetValues(values);
table.LoadDataRow(values, true);
}
reader.Close();
table.EndLoadData();
return table;
}
相关文章推荐
- SqlDataReader,DataTable 判断是否存在某列的方法
- SqlDataReader,DataTable 判断是否存在某列的方法
- SqlDataReader或DATATABLE DATASET 到EXCEL
- SqlDataReader转成DataTable
- SqlDataReader 转化成DataTablE,在.net FrameWOrk1.1与2。0的不同
- SqlDataReader转换为DataTable
- SqlDataReader的合适关闭方法?
- SqlDataReader的合适关闭方法?
- SqlDataReader转换成DataTable
- 将SqlDataReader转换为DataTable
- sqlDataReader填充DataTable
- Asp.net SqlDataReader转成Datatable
- 能否从一个没有读到数据SqlDataReader中创建DataTable
- 有关数据库查询返回为空与取特定值dataset,datatable,sqldatareader
- SqlDataAdapter对象的Fill(dataset,datatable)方法中的dataTable
- SqlDataReader 操作 SqlServer image 列的一些实用方法
- 读取SqlDataReader数据动态创建DataTable
- SqlDataReader对象的NextResult方法读取存储过程多个结果集
- SqlDataReader实例 HasRows属性与 Read()方法
- SqlDataReader转化为DataTable