存储过程返回数据怎么放如DataTable 中? 我在调用存储过程时用的ExecuteReader()方法,返回的数据是只读数据,怎样可以放到像dataset对象或是DataTable 中?谢谢啦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用DataAdapter来执行存储,相当于设置SelectCommand,然后用其的Fill来进行填充DataSet。 下一个SQLHELPER,直接调用里面的方法 string strSql="....";SqlConnection conn=New SqlConnection(.....);SqlDataAdapter adapter=new SqlDataAdapter(strSql,conn);DataSet ds=new DataSet();adapter.Fill(ds); http://blog.csdn.net/xielingxu/archive/2007/01/20/1488417.aspx 楼上那些方法都对都行,问题是楼主说他想用Reader... 毕竟有人并不喜欢适配器.可以写个while循环,用Reader读到的内容填充DataTable的行. #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 请问怎么下载youtube,土豆,k5k6等网站的视频? OA里嵌套论坛! MAPINFO 线程,SOCKET ,同步 等问题 请教一个多线程同步的问题(帖子已加分) 数据更新问题? c# word对象模型 怎么获取打开的word文档中选中的文字 xp上运行.net2.0的C#程序,急! 求一正则表达式,或者截取函数,匹配<?xml.*</EMC>中内容,文档中可能有多个块,还有不正常的格式 急需BS模式下的打印程序控制组件(或源代码出高招者再加100分作为酬谢) 高分求 C# UDP 聊天程序 急急急急急急急急急 DataTable 中数据操作的问题!
SqlConnection conn=New SqlConnection(.....);SqlDataAdapter adapter=new SqlDataAdapter(strSql,conn);
DataSet ds=new DataSet();
adapter.Fill(ds);
可以写个while循环,用Reader读到的内容填充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