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);
    }
    }

  • 相关阅读:
    Python if语句
    Pyhton数据类型总结
    Flask系列之自定义中间件
    Flask系列之蓝图中使用动态URL前缀
    python+Nginx+uWSGI使用说明
    python之threading.local
    python之偏函数
    Flask系列之源码分析(一)
    Python扩展之类的魔术方法
    Flask系列(十一)整合Flask中的目录结构(sqlalchemy-utils)
  • 原文地址:https://www.cnblogs.com/lijunfengcz/p/11800288.html
Copyright © 2011-2022 走看看