用 DataReader 填充 DataTable
来源:互联网 发布:java采购系统 编辑:程序博客网 时间:2024/05/14 16:28
一、引言
Repeater 绑定到 DataReader是一种常用高效的数据绑定形式。有时可使用ASP.NET2.0的数据源控件(DataSource),但感觉不够灵活。
在一般情况下,Repeater与DataReader直接绑定就行:
SqlDataReader dr=new SqlUtility.ExecuteReader(...);
repeater.DataSource=dr;
repeater.DataBind();
repeater.DataSource=dr;
repeater.DataBind();
但有的时候,如做二级分类时repeater数据绑定的同时,DropDownList也要绑定到同样的数据源,直接用DataReader不得不再次读取数据,如果DataReader读取的数据保存到DataTable就可以实现N次绑定。
二、实现
1、直接用DataReader填充DataTable
代码如下:
//飘遥:http://blog.csdn.net/zxjay
public DataTable DataReaderToDataTable(IDataReader reader)
{
DataTable tb = new DataTable();
DataColumn col;
DataRow row;
int i;
for (i = 0; i < reader.FieldCount; i++)
{
col = new DataColumn();
col.ColumnName = reader.GetName(i);
col.DataType = reader.GetFieldType(i);
tb.Columns.Add(col);
}
while (reader.Read())
{
row = tb.NewRow();
for (i = 0; i < reader.FieldCount; i++)
{
row[i] = reader[i];
}
tb.Rows.Add(row);
}
return tb;
}
{
DataTable tb = new DataTable();
DataColumn col;
DataRow row;
int i;
for (i = 0; i < reader.FieldCount; i++)
{
col = new DataColumn();
col.ColumnName = reader.GetName(i);
col.DataType = reader.GetFieldType(i);
tb.Columns.Add(col);
}
while (reader.Read())
{
row = tb.NewRow();
for (i = 0; i < reader.FieldCount; i++)
{
row[i] = reader[i];
}
tb.Rows.Add(row);
}
return tb;
}
2、ASP.NET2.0有更简单的方法:
DataTable dt=new DataTable();
dt.Load(IDataReader);
dt.Load(IDataReader);
一条语句搞定。
DataTable.Load(...)的具体实现可以参看开源的Mono项目(http://www.go-mono.com)。
文件位置:(mono-1.2.4/mcs/class/System.Data/System.Data/DataTable.cs)
3、总结:
无^_^
- 用 DataReader 填充 DataTable
- 使用DataReader填充DataTable
- DataReader 填充 DataTable
- datareader填充DataTable
- DataReader,DataTable利用泛型填充实体类
- 转换DataReader 为DataTable
- dataReader转化为dataTable
- 将DataReader转为DataTable
- 将DataReader 转为 DataTable
- DataReader转换为DataTable
- datatable,datareader,dataset,SqlDataAdapter
- DataSet,DataTable,DataReader,DataAdapter
- DataSet,DataReader,DataTable关系
- DataSet,DataReader,DataTable区别
- 把Datareader转化为DataTable
- DataSet DataTable DataReader dataAdapter区别
- DataSet与 DataTable 和 DataReader
- DataSet DataTable DataReader dataAdapter区别
- JavaScript方法和技巧大全
- WebWork
- Struts
- 使用xfire建立webservice
- Spring Framework
- 用 DataReader 填充 DataTable
- eclipse与相关插件、服务的下载、安装配置
- How to Read a Book (3) “篇外”
- 常用的.NET代码(很基础的)
- 将js文件编译成动态链接库(dll)文件
- OutlookBar: A Simplified Outlook Style Sidebar Control
- JAVA is DOOMED
- JOGRE
- Jake2