存储过程返回数据怎么放如DataTable 中?

yjwen0057 2006-10-26 09:42:58
我在调用存储过程时用的ExecuteReader()方法,返回的数据是只读数据,怎样可以放到像dataset对象或是DataTable 中?谢谢啦!
...全文
226 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
syeerzy 2007-02-27
  • 打赏
  • 举报
回复
楼上那些方法都对都行,问题是楼主说他想用Reader... 毕竟有人并不喜欢适配器.


可以写个while循环,用Reader读到的内容填充DataTable的行.
wangkun9999 2007-02-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/xielingxu/archive/2007/01/20/1488417.aspx
wenle 2007-02-27
  • 打赏
  • 举报
回复
楼上的方法就可以
大个啊 2007-02-27
  • 打赏
  • 举报
回复
#region 将DataReader 转为 DataTable
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public static DataTable ConvertDataReaderToDataTable(SqlDataReader reader)
{
try
{

DataTable objDataTable = new DataTable();
int intFieldCount = reader.FieldCount;
for (int intCounter = 0; intCounter < intFieldCount; ++intCounter)
{
objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter));
}

objDataTable.BeginLoadData();

object[] objValues = new object[intFieldCount];
while (reader.Read())
{
reader.GetValues(objValues);
objDataTable.LoadDataRow(objValues, true);
}
reader.Close();
objDataTable.EndLoadData();

return objDataTable;

}
catch(Exception ex)
{
throw new Exception("转换DataReader为DataTable出错!",ex);
}

}
#endregion
jingye721 2006-10-26
  • 打赏
  • 举报
回复
string strSql="....";
SqlConnection conn=New SqlConnection(.....);

SqlDataAdapter adapter=new SqlDataAdapter(strSql,conn);
DataSet ds=new DataSet();
adapter.Fill(ds);
lsj_zrp 2006-10-26
  • 打赏
  • 举报
回复
下一个SQLHELPER,直接调用里面的方法
Knight94 2006-10-26
  • 打赏
  • 举报
回复
用DataAdapter来执行存储,相当于设置SelectCommand,然后用其的Fill来进行填充DataSet。
lovvver 2006-10-26
  • 打赏
  • 举报
回复
用SqlCommand
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-26 09:42
社区公告

让您成为最强悍的C#开发者