直接上代码,这个过程中有个数据SqlDataReader转为 DataTable的过程,当中为什么这样,是应为我直接绑定DataSource的时候没有数据,网人家说直接绑定但是没效果,我就转换了一下。

//存储过程
public static DataTable GetTableaToPROCEDURE(string ProcName,DateTime begin,DateTime end,string Name, string strcon)
{
using (SqlConnection conn = new SqlConnection(strcon))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 1000;
cmd.Connection = conn;
cmd.CommandText = ProcName;//需要调用的存储过程
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para0 = new SqlParameter("@ad_begin", SqlDbType.DateTime);//参数名称,类型,大小
para0.Value = begin;
SqlParameter para1 = new SqlParameter("@ad_end", SqlDbType.DateTime);//参数名称,类型,大小
para1.Value = end;
SqlParameter para2 = new SqlParameter("@ClientName", SqlDbType.NVarChar, 100);//参数名称,类型,大小
para2.Value = Name;
cmd.Parameters.Add(para0);
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
//获得数据
SqlDataReader sqlDate = cmd.ExecuteReader();//执行完后关闭连接
DataTable dt = new DataTable();//新建一个临时表存放结果
dt= ConvertDataReaderToDataTable(sqlDate);
return dt;
}
}
/// <summary>
/// SqlDataReader 转成 DataTable
/// </summary>
/// <param name="dataReader"></param>
/// <returns></returns>
private static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
///定义DataTable
DataTable datatable = new DataTable();

try
{ ///动态添加表的数据列
for (int i = 0; i < dataReader.FieldCount; i++)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = dataReader.GetFieldType(i);
myDataColumn.ColumnName = dataReader.GetName(i);
datatable.Columns.Add(myDataColumn);
}

///添加表的数据
while (dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for (int i = 0; i < dataReader.FieldCount; i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
///关闭数据读取器
dataReader.Close();
return datatable;
}
catch (Exception ex)
{
///抛出类型转换错误
//SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
}

最新文章

  1. 关于C语言宏定义 使用do{ xxxx }while()
  2. MyEclipse删除不再使用的工作空间记录
  3. Java Web系列:Spring Boot 基础
  4. Oracle11g install Bbed
  5. [转] c# 数据类型占用的字节数
  6. 什么是VPN?
  7. HDU 1829 - A Bug&#39;s Life
  8. RoleManager 进行角色管理
  9. Oracle中如何删除某个用户下的所有数据的方法
  10. Spring总结_02_Spring概述
  11. ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
  12. python3之shutil高级文件操作
  13. dm642的中断
  14. FB面经Prepare: Email User
  15. 2016 安全圈玩起了直播,“学霸”带你玩转CTF_i春秋学院
  16. python 全栈开发,Day53(jQuery的介绍,jQuery的选择器,jQuery动画效果)
  17. 《JAVA编程思想》第四版 PDF 下载 中文版和英文版 高清PDF扫描带书签
  18. Distributing Ballot Boxes
  19. 关于 json 单引号和双引号区别--请使用双引号
  20. python-queue队列通信

热门文章

  1. svn导一份历史版本出来
  2. Jenkins连接Git仓库时候报错Permission denied, please try again.
  3. 常用.gitignore
  4. requests---session简介
  5. 使用angularJS接收json数据并进行数据的显示
  6. Dubbo介绍(一)
  7. 通过DatagramSocket实现UDP编程(十三)
  8. JetBrains优惠码分享
  9. &lt;Array&gt; 41 134
  10. 8.5 NOIP模拟测试13 矩阵游戏+跳房子+优美序列