zoukankan      html  css  js  c++  java
  • 操作数据库帮助类

    1、sqlserver

        public class SqlHelper
        {
            private static SqlConnection connection;
    
            public static SqlConnection Connection
            {
                get
                {
                    string connectionString = ConfigurationManager.AppSettings["connStr"];
                    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);
                }
            }
        }
    View Code
    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    06列表的常用基本操作
    05字符串的常用基本操作
    什么是全量表,增量表,快照表,拉链表,维度表,事实表,实体表
    什么是拉链表
    数仓设计
    pandas学习
    矩阵和数组的区别
    中文文本关键词抽取的三种方法(TF-IDF、TextRank、word2vec)
    python使用结巴分词(jieba)创建自己的词典/词库
    scrapy是广度优先还是深度优先?
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/14328766.html
Copyright © 2011-2022 走看看