zoukankan      html  css  js  c++  java
  • 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); 

                } 

           } 

        } 

    }

  • 相关阅读:
    SuperMap房产测绘成果管理平台
    SuperMap产权登记管理平台
    Android adb shell am 的用法(1)
    由浅入深谈Perl中的排序
    Android 内存监测和分析工具
    Android 网络通信
    adb server is out of date. killing...
    引导页使用ViewPager遇到OutofMemoryError的解决方案
    adb logcat 详解
    How to send mail by java mail in Android uiautomator testing?
  • 原文地址:https://www.cnblogs.com/dullbaby/p/2950008.html
Copyright © 2011-2022 走看看