public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错出错!",ex);
}
}
看看这段代码有错吗?
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
try
{
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("转换出错出错!",ex);
}
}
看看这段代码有错吗?
解决方案 »
- (200分不是因为题难,兄弟们帮我看题不容易)aspnet的treeview的ExpandDepth设为1,在ie中打不开子节点
- 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
- 请教一个SQL语句
- 怎样把两个字段的信息内容绑定到 DropDownList的 DataTextField 属性?
- 从网上下了一个calendar.js,用于点击TextBox时,弹出日历进行选择,并将其值写入TextBox....
- 一个网站应用程序出错的问题,高手帮忙啊!!!救命!!!!!!
- 急急!!求购生成html页面的完整例子和数据库结构思路
- 这个SQL怎么写:添加记录时把自动生成的ID字段值添到当前记录的另一个字段中
- 进程w3wp.exe会时不时出现崩溃??
- Entities LoadOptions
- 在VS2005里运行程序时出现错误,怎么解决?执行 SQL 文件“InstallCommon.sql”时发生错误
- 执行 SQL 文件“InstallCommon.sql”时发生错误。SQL 错误号为 1802,SqlException 消息为: CREATE DATABASE 失败。无法创建列出的某些文
楼主是要实现行变列,列变行?那么,新的列名属性就不好说了,建议空着。
其他没看出来。
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
这里应该为k=0;
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[k].ToString(); k++;
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}