• 使用 SqlClient 创建数据库连接并获取数据


     封装了两个方法,返回dataset和无返回值。

    统一设置sqlcommand 的commandtimeout,这个时间与webconfig中设置的数据库连接超时时间不同。默认commandtimeout是30秒。详细如下:

            /// <summary>
            /// 数据库查询并返回结果集
            /// </summary>
            /// <param name="_sql">需要执行的SQL语句或者存储过程名称</param>
            /// <param name="_type">命令类型,text/StoredProcedure/TableDirect</param>
            /// <param name="_constring">数据库连接</param>
            /// <param name="_parameter">参数</param>
            /// <returns></returns>
            public DataSet SqlExecuteReader(string _sql, CommandType _type, string _constring, SqlParameter[] _parameters)
            {
                DataSet ds = new DataSet();
                try
                {
                    using (SqlConnection conn = new SqlConnection(_constring))
                    {
                        SqlCommand cmd = new SqlCommand(_sql, conn);

                        if (_parameters != null)

                           {foreach (SqlParameter p in _parameters)

                                 {
                                   cmd.Parameters.Add(p);
                                 }
                           }

                        cmd.CommandType = _type;
                        cmd.CommandTimeout = _timeout;//超时时间,单位S
                        conn.Open();
                        using (SqlDataAdapter sda = new SqlDataAdapter())
                        {
                            sda.SelectCommand = cmd;
                            sda.Fill(ds);//填充dataset
                        }
                    }
                    return ds;
                }
                catch (Exception ex)
                {
                    throw;
                }

    cmd.ExecuteNonQuery()//是返回受影响的行数。

    无返回结果 ExecuteNonQuery:

            /// <summary>
            /// 数据库增删改,返回受影响行数
            /// </summary>
            /// <param name="_sql">数据库脚本 或者 存储过程名</param>
            /// <param name="_type">Text数据库文本,StoredProcedure存储过程名称</param>
            /// <param name="_constring">连接字符串</param>
            /// <returns></returns>
    
            public static int SqlExecutNonQuery(string _sql, CommandType _type, string _constring, SqlParameter[] _parameters)
            {
                int count;
                try
                {
                    using (SqlConnection _Connection = new SqlConnection(_constring))
                    {
                        SqlCommand cmd = new SqlCommand(_sql, _Connection);
                        if (_parameters != null)
                        {
                            foreach (SqlParameter p in _parameters)
                            {
                                cmd.Parameters.Add(p);
                            }
                        }
                        cmd.CommandText = _sql;
                        cmd.CommandType = _type;
                        cmd.CommandTimeout = _timeout;
                        _Connection.Open();
                        count = cmd.ExecuteNonQuery();
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Error("SqlExecutNonQuery", ex);
                    throw;
                }
                return count;//返回受影响的行数
            }
  • 相关阅读:
    [转]关闭 Chrome 浏览器的启动时提示 - 请停用以开发者模式运行的扩展程序
    [Java][Web]ServletContext 方法的应用
    SQL中char、varchar、nchar、nvarchar 详解
    数据库三级模式与二级映像
    数据库设计思考
    Oracle概述
    asp.net服务器控件button先执行js再执行后台的方法
    C# 序列化
    HTML服务器控件与Web服务器控件
    VS2013自带报表+打印功能
  • 原文地址:https://www.cnblogs.com/daniel-niu/p/10368570.html
Copyright © 2020-2023  润新知