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

  • 相关阅读:
    HybridAPP开发框架Ionic+AngularJS+Cordova搭建
    MySQL数据类型DECIMAL用法
    RabbitMQ用户管理
    Linux中Mysql root用户看不到mysql库问题解决方式
    RabbitMQ环境安装
    RabbitMQ简介
    Mysql根据一个基库生成其他库与其不同的库升级脚本
    关于中文乱码的解决方法(URL方式)
    java反射机制
    the jar file rt.jar has no source attachment
  • 原文地址:https://www.cnblogs.com/lijunfengcz/p/11800288.html
Copyright © 2020-2023  润新知