zoukankan      html  css  js  c++  java
  • c#ADO.NET 执行带参数及有返回数据

    直接上代码,这个过程中有个数据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);
    }
    }

  • 相关阅读:
    [转] egg(28)--mongoose使用聚合管道
    [转] mongoose的populate
    [转]express常用中间件
    [转] SuperAgent使用文档
    [转] node爬虫之gbk网页中文乱码解决方案
    [转] js日期对象Date对象方法 时间方法
    [转] Nodejs学习笔记(十四)— Mongoose介绍和入门
    [转] 深入理解vue 一些底层原理
    [转] Nginx之八 URL重写(rewrite)配置
    随笔
  • 原文地址:https://www.cnblogs.com/lijunfengcz/p/11800288.html
Copyright © 2011-2022 走看看