• .net DBHelper


      DBHelper.cs是程序来连接数据的,也是一个程序必不可少的一个类(本人道行浅,目前这样认为)。由于一个程序基本写一次,容易忘记。所有写在这里备注

    首先是引用

    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;

    然后代码:

    conn.Close();
    conn.Dispose();
    cmd.Dispose();
    这几个为了防患于未然也加上去了

      public class DBHelper
        {
            private static readonly string strconnection = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString;
            private static SqlConnection conn = new SqlConnection(strconnection);
            //创建给sqlreadr使用
            public static SqlConnection GetConnection() { return conn; }
            /// <summary>
            /// 打开数据库链接
            /// </summary>
            public static void OpenSqlConnection()
            {
                if (GetConnection().State == ConnectionState.Closed) { DBHelper.GetConnection().Open(); }
            }
            /// <summary>
            /// 关闭数据库链接
            /// </summary>
            public static void ClosSqlConnection()
            {
                if (GetConnection().State == ConnectionState.Open) { DBHelper.GetConnection().Close(); }
            }
    
    
            /// <summary>
            /// 基础ExecuteNonQuery 方法
            /// </summary>
            /// <param name="SQLString">执行的sql语句</param>
            /// <param name="type">是否执行存储过程·</param>
            /// <param name="prep">存储过程参数</param>
            /// <returns></returns>
            private static int ExecuteNonQuery(string SQLString, CommandType type, SqlParameter[] prep)
            {
                using (SqlConnection conn = new SqlConnection(strconnection))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, conn))
                    {
                        int r = 0;
                        try
                        {
                            conn.Open();
                            cmd.CommandType = type;
                            if (prep != null && prep.Length > 0)
                            {
                                foreach (SqlParameter p in prep)
                                {
                                    cmd.Parameters.Add(p);
                                }
                            }
                            r = cmd.ExecuteNonQuery();
                        }
                        catch (System.Data.SqlClient.SqlException ex) { throw new Exception(ex.Message); }
                        finally
                        {
                            conn.Close();
                            conn.Dispose();
                            cmd.Dispose();
                        }
                        return r;
                    }
                }
    
            }
    
            /// <summary>
            /// 基础datatable
            /// </summary>
            /// <param name="SQLString">执行的sql语句</param>
            /// <param name="type">是否执行存储过程·</param>
            /// <param name="prep">存储过程参数</param>
            /// <returns></returns>
            private static DataTable GetDataTable( string SQLString, CommandType type, SqlParameter[] prep)
            {
                using (SqlConnection conn = new SqlConnection(strconnection))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, conn))
                    {
                        SqlDataAdapter dap = null;
                        DataTable dt = null;
                        try
                        {
                            cmd.CommandType = type;
                            if (prep != null && prep.Length > 0)
                            {
                                foreach (SqlParameter p in prep)
                                {
                                    cmd.Parameters.Add(p);
                                }
                            }
                            dap = new SqlDataAdapter(cmd);
                            dt = new DataTable();
                            dap.Fill(dt);
                        }
                        catch (Exception ex) { }
                        finally
                        {
                            conn.Close();
                            conn.Dispose();
                            cmd.Dispose();
                        }
                        return dt;
                    }
                }
            }
    
            /// <summary>
            /// 基础SqlDataReader
            /// </summary>
            /// <param name="SQLString">执行的sql语句</param>
            /// <param name="type">是否执行存储过程·</param>
            /// <param name="prep">存储过程参数</param>
            /// <returns></returns>
            private static SqlDataReader GetList(string SQLString, CommandType type, SqlParameter[] prep)
            {
                SqlCommand cmd = null;
                SqlDataReader dr = null;
                cmd = new SqlCommand(SQLString, conn);
                if (prep != null && prep.Length > 0)
                {
                    cmd.Parameters.AddRange(prep);
                }
                cmd.CommandType = type;
                try { dr = cmd.ExecuteReader(); }
                catch (Exception ex) { }
                return dr;
            }
    
    
            //调用ExecuteNonQuery 方法
            public static int ExecuteNonQuery(string SQLString, SqlParameter[] prep) {
                return ExecuteNonQuery(SQLString, CommandType.StoredProcedure, prep);
            }
            public static int ExecuteNonQuery(string SQLString) {
                return ExecuteNonQuery(SQLString, CommandType.Text, null);
            }
            //调用GetDataTable 方法
            public static DataTable GetDataTable(string SQLString, SqlParameter[] prep) {
                return GetDataTable(SQLString, CommandType.StoredProcedure, prep);
            }
            public static DataTable GetDataTable(string SQLString)
            {
                return GetDataTable(SQLString, CommandType.Text, null);
            }
            //调用SqlDataReader  调用此方法需要先打开conn  使用完毕之后关闭conn
            public static SqlDataReader GetList(string SQLString, SqlParameter[] prep)
            {
                return GetList(SQLString, CommandType.StoredProcedure, prep);
            }
            public static SqlDataReader GetList(string SQLString)
            {
                return GetList(SQLString, CommandType.Text, null);
            }
    
    
        }
  • 相关阅读:
    某一字段分组取最大(小)值所在行的数据
    【JVM】01虚拟机内存模型
    POJ 1845 Sumdiv (求某个数的所有正因子的和)
    POJ 2992 Divisors (求因子个数)
    POJ 3696 The Luckiest number (欧拉函数,好题)
    POJ 1811 Prime Test (Pollard rho 大整数分解)
    POJ 2429 GCD & LCM Inverse (Pollard rho整数分解+dfs枚举)
    POJ 1305 Fermat vs. Pythagoras (毕达哥拉斯三元组)
    POJ 2142 The Balance (解不定方程,找最小值)
    POJ 1006 Biorhythms (中国剩余定理)
  • 原文地址:https://www.cnblogs.com/1439107348s/p/8017025.html
Copyright © 2020-2023  润新知