• C# sqlhelper 通用类


    using System; 

    using System.Collections.Generic; 

    using System.Text; 

    using System.Data; 

    using System.Data.SqlClient; 

    using System.Configuration; 

    namespace MyBookShopSys.DAL 

        /// <summary> 

        /// </summary> 

        public static class DBHelper 

        { 

            private static SqlConnection connection; 

            public static SqlConnection Connection 

            { 

                get 

                { 

                    string connectionString = ConfigurationManager.ConnectionStrings["MyBookShopSys"].ConnectionString; 

                    if (connection == null) 

                    { 

                        connection = new SqlConnection(connectionString); 

                        connection.Open(); 

                    } 

                    else if (connection.State == System.Data.ConnectionState.Closed) 

                    { 

                        connection.Open(); 

                    } 

                    else if (connection.State == System.Data.ConnectionState.Broken) 

                    { 

                        connection.Close(); 

                        connection.Open(); 

                    } 

                    return connection; 

                } 

            } 

              

            /// <summary> 

            /// 执行一个增删改存储过程(有参

            /// </summary> 

            /// <param name="procName">存储过程名字</param> 

            /// <param name="values">参数列表</param> 

            /// <returns>影响行数</returns> 

            public static int ExecuteProc(string procName, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(); 

                cmd.Connection = Connection; 

                cmd.CommandText = procName; 

                cmd.CommandType = CommandType.StoredProcedure; 

                cmd.Parameters.AddRange(values); 

                return cmd.ExecuteNonQuery(); 

            } 

            /// <summary> 

            /// 执行一个查询无参存储过程,要关闭 

            /// </summary> 

            /// <param name="procName">存储过程名字</param> 

            /// <returns>SqlDataReader</returns> 

            public static SqlDataReader ExecuteProcSelect(string procName) 

            { 

                SqlCommand cmd = new SqlCommand(); 

                cmd.Connection = Connection; 

                cmd.CommandText = procName; 

                cmd.CommandType = CommandType.StoredProcedure; 

                return cmd.ExecuteReader(); 

            } 

            /// <summary> 

            /// 执行一个带参查询存储过程,注意要关闭  

            /// </summary> 

            /// <param name="procName">存储过程名字</param> 

            /// <param name="values">参数列表</param> 

            /// <returns>SqlDataReader</returns> 

            public static SqlDataReader ExecuteProcSelect(string procName, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(); 

                cmd.Connection = Connection; 

                cmd.CommandText = procName; 

                cmd.CommandType = CommandType.StoredProcedure; 

                cmd.Parameters.AddRange(values); 

                return cmd.ExecuteReader(); 

            } 

            /// <summary> 

            /// 执行一个无参增删改存储过程 

            /// </summary> 

            /// <param name="procName">存储过程名字</param> 

            /// <returns>影响行数</returns> 

            public static int ExecuteProc(string procName) 

            { 

                SqlCommand cmd = new SqlCommand(); 

                cmd.Connection = Connection; 

                cmd.CommandText = procName; 

                cmd.CommandType = CommandType.StoredProcedure; 

                return cmd.ExecuteNonQuery(); 

            } 

            /// <summary> 

            /// 执行一个(无参)增删改语句 

            /// </summary> 

            /// <param name="safeSql">语句</param> 

            /// <returns>影响行数</returns> 

            public static int ExecuteCommand(string safeSql) 

            { 

                SqlCommand cmd = new SqlCommand(safeSql, Connection); 

                int result = cmd.ExecuteNonQuery(); 

                return result; 

            } 

            /// <summary> 

            /// 执行一个有参增删改操作 

            /// </summary> 

            /// <param name="sql">语句</param> 

            /// <param name="values">参数</param> 

            /// <returns>影响行数 </returns> 

            public static int ExecuteCommand(string sql, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(sql, Connection); 

                cmd.Parameters.AddRange(values); 

                return cmd.ExecuteNonQuery(); 

            }  

            /// <summary> 

            /// 查询第一行第一列数据(无参)(返回的是什么类型就转换成什么类型) 

            /// </summary> 

            /// <param name="safeSql">语句</param> 

            /// <returns>object</returns> 

            public static object GetScalar(string safeSql) 

            { 

                SqlCommand cmd = new SqlCommand(safeSql, Connection); 

                return cmd.ExecuteScalar(); 

            } 

            /// <summary> 

            /// 查询第一行第一列数据(有参)(返回的是什么类型就转换成什么类型) 

            /// </summary> 

            /// <param name="values">参数</param> 

            /// <returns>object</returns> 

            public static object GetScalar(string safeSql,params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(safeSql,Connection); 

                cmd.Parameters.AddRange(values); 

                return cmd.ExecuteScalar(); 

            }  

            /// <summary> 

            /// 返回一个SqlDataReader(注意要关闭) 

            /// </summary> 

            /// <param name="safeSql">语句</param> 

            /// <returns>SqlDataReader</returns> 

            public static SqlDataReader GetReader(string safeSql) 

            { 

                SqlCommand cmd = new SqlCommand(safeSql, Connection); 

                SqlDataReader reader = cmd.ExecuteReader(); 

                return reader; 

            } 

            /// <summary> 

            /// 返回int 

            /// </summary> 

            /// <param name="sql"></param> 

            /// <param name="values"></param> 

            /// <returns></returns> 

            public static int GetScalarInt(string sql, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(sql, Connection); 

                cmd.Parameters.AddRange(values); 

                return Convert.ToInt32(cmd.ExecuteScalar()); 

            } 

            /// <summary> 

            /// 返回string 

            /// </summary> 

            /// <param name="sql"></param> 

            /// <param name="values"></param> 

            /// <returns></returns> 

            public static string GetScalarString(string sql, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(sql, Connection); 

                cmd.Parameters.AddRange(values); 

                return Convert.ToString(cmd.ExecuteScalar()); 

            }   

            /// <summary> 

            /// 返回一个有参SqlDataReader(注意要关闭) 

            /// </summary> 

            /// <param name="sql">语句</param> 

            /// <param name="values">参数</param> 

            /// <returns>SqlDataReader</returns> 

            public static SqlDataReader GetReader(string sql, params SqlParameter[] values) 

            { 

                SqlCommand cmd = new SqlCommand(sql, Connection); 

                cmd.Parameters.AddRange(values); 

                SqlDataReader reader = cmd.ExecuteReader(); 

                return reader; 

            } 

            /// <summary> 

            /// 返回一个Datatable(无参) 

            /// </summary> 

            /// <param name="safeSql">语句</param> 

            /// <returns>DataTable</returns> 

            public static DataTable GetDataSet(string safeSql) 

            { 

                DataSet ds = new DataSet(); 

                SqlCommand cmd = new SqlCommand(safeSql, Connection); 

                SqlDataAdapter da = new SqlDataAdapter(cmd); 

               da.Fill(ds); 

                return ds.Tables[0]; 

            } 

            /// <summary> 

            /// 返回一个Datatable(有参) 

            /// </summary> 

            /// <param name="sql">语句</param> 

            /// <param name="values">参数</param> 

            /// <returns>DataTable</returns> 

            public static DataTable GetDataSet(string sql, params SqlParameter[] values) 

            { 

                DataSet ds = new DataSet(); 

               SqlCommand cmd = new SqlCommand(sql, Connection); 

                cmd.Parameters.AddRange(values); 

                SqlDataAdapter da = new SqlDataAdapter(cmd); 

                da.Fill(ds); 

                return ds.Tables[0];

            } 

            /// <summary> 

          /// 执行多条SQL语句,实现数据库事务。 

          /// </summary> 

          /// <param name="SQLStringList">多条SQL语句</param>   

          public static void ExecuteSqlTran(ArrayList SQLStringList) 

          {

              SqlCommand cmd = new SqlCommand(); 

              cmd.Connection = Connection; 

              SqlTransaction tx = Connection.BeginTransaction();    

                cmd.Transaction=tx;     

                try

                {      

                 for(int n=0;n<SQLStringList.Count;n++) 

                 { 

                  string strsql=SQLStringList[n].ToString(); 

                  if (strsql.Trim().Length>1) 

                  { 

                   cmd.CommandText=strsql; 

                   cmd.ExecuteNonQuery(); 

                  } 

                 }           

                 tx.Commit();      

                } 

                catch(System.Data.SqlClient.SqlException E) 

                {   

                 tx.Rollback(); 

                 throw new Exception(E.Message); 

                } 

           } 

        } 

    }

  • 相关阅读:
    sql server 总结一下堆和索引的东西
    公开课笔记:美联储与经济危机(一:金本位,大萧条)
    关于一个springcloud项目中学到的(二:分布式集群,Maven,JDKJRE,编译和解释)
    关于一个springcloud项目中学到的(一:感受)
    sql 经典查询50题 思路(一)
    信息熵的定义和简单计算
    使用Mulesoft建立webservice, jax-ws方式, wsdl first
    使用Mulesoft建立webservice, simple方式,POJO
    编写高质量代码 改善Python程序的91个建议
    23 种编程学习资料免费分享,你想要的都有
  • 原文地址:https://www.cnblogs.com/dullbaby/p/2950008.html
Copyright © 2020-2023  润新知