zoukankan      html  css  js  c++  java
  • 我的asp.net数据库连接类(SQL)

    代码
        public class SqlOperation
        {
            
    #region 属性
            
    /// <summary>
            
    /// 保存在Web.config中的连接字符串
            
    /// </summary>
            protected static string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["hao"].ConnectionString;
            
    /// <summary>
            
    /// SqlConnection对象
            
    /// </summary>
            protected static SqlConnection conn = new SqlConnection();
            
    /// <summary>
            
    /// SqlCommand对象
            
    /// </summary>
            protected static SqlCommand comm = new SqlCommand();
            
    #endregion

            
    #region 内部函数
            
    /// <summary>
            
    /// 打开数据库连接
            
    /// </summary>
            private static void ConnectionOpen()
            {
                
    if (conn.State != ConnectionState.Open)
                {
                    conn.Close();
                    conn.ConnectionString 
    = connectionstring;
                    comm.Connection 
    = conn;
                    
    try
                    {
                        conn.Open();
                    }
                    
    catch (Exception ex)
                    {
                        
    throw new Exception(ex.Message);
                    }
                }
            }

            
    /// <summary>
            
    /// 关闭数据库连接
            
    /// </summary>
            private static void ConnectionClose()
            {
                conn.Close();
                conn.Dispose();
                comm.Dispose();
            }

            
    #endregion

            
    /// <summary>
            
    /// 执行SQL语句
            
    /// </summary>
            
    /// <param name="SqlString">要执行的SQL语句</param>
            public static void ExecuteSQL(string SqlString)
            {
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.Text;
                    comm.CommandText 
    = SqlString;
                    comm.ExecuteNonQuery();
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
            }

            
    /// <summary>
            
    /// 执行存储过程
            
    /// </summary>
            
    /// <param name="ProcedureName">存储过程名称</param>
            
    /// <param name="coll">存储过程需要的参数集合</param>
            public static void ExecuteProcedure(string ProcedureName, params SqlParameter[] coll)
            {
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.StoredProcedure;
                    comm.CommandText 
    = ProcedureName;
                    comm.Parameters.Clear();
                    
    for (int i = 0; i < coll.Length; i++)
                    {
                        comm.Parameters.Add(coll[i]);
                    }
                    comm.ExecuteNonQuery();
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
            }

            
    /// <summary>
            
    /// 执行Sql查询并返回第一行的第一条记录,返回object,使用时需要拆箱 -> unbox
            
    /// </summary>
            
    /// <param name="sqlstr">传入的Sql语句</param>
            
    /// <returns>返回object类型的第一行第一条记录</returns>
            public static object ExecuteScalar(string SqlString)
            {
                
    object obj = new object();
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.Text;
                    comm.CommandText 
    = SqlString;
                    obj 
    = comm.ExecuteScalar();
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return obj;
            }

            
    /// <summary>
            
    /// 执行SQL语句,同时进行事务处理
            
    /// </summary>
            
    /// <param name="sqlstr">要执行的SQL语句</param>
            public static void ExecuteTransactionSQL(string SqlString)
            {
                SqlTransaction trans;
                trans 
    = conn.BeginTransaction();
                comm.Transaction 
    = trans;
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.Text;
                    comm.CommandText 
    = SqlString;
                    comm.ExecuteNonQuery();
                    trans.Commit();
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
            }

            
    /// <summary>
            
    /// 执行指定SQL查询,返回DataSet
            
    /// </summary>
            
    /// <param name="sqlstr">要执行的SQL语句</param>
            
    /// <returns>DataSet</returns>
            public static DataSet GetDataSetBySQL(string SqlString)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataSet ds 
    = new DataSet();
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.Text;
                    comm.CommandText 
    = SqlString;
                    da.SelectCommand 
    = comm;
                    da.Fill(ds);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return ds;
            }

            
    /// <summary>
            
    /// 通过存储过程返回DataSet
            
    /// </summary>
            
    /// <param name="ProcedureName">存储过程名称</param>
            
    /// <param name="coll">SqlParameter集合</param>
            
    /// <returns>DataSet</returns>
            public static DataSet GetDataSetByProcedure(string ProcedureName, params SqlParameter[] coll)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataSet ds 
    = new DataSet();
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.StoredProcedure;
                    comm.Parameters.Clear();
                    
    for (int i = 0; i < coll.Length; i++)
                    {
                        comm.Parameters.Add(coll[i]);
                    }
                    comm.CommandText 
    = ProcedureName;
                    da.SelectCommand 
    = comm;
                    da.Fill(ds);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return ds;
            }


            
    /// <summary>
            
    /// 通过存储过程返回DataSet
            
    /// </summary>
            
    /// <param name="ProcedureName">存储过程名称</param>
            
    /// <returns>DataSet</returns>
            public static DataSet GetDataSetByProcedure(string ProcedureName)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataSet ds 
    = new DataSet();
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.StoredProcedure;
                    comm.CommandText 
    = ProcedureName;
                    comm.Parameters.Clear();
                    da.SelectCommand 
    = comm;
                    da.Fill(ds);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return ds;
            }

            
    /// <summary>
            
    /// 返回指定sql语句的DataTable
            
    /// </summary>
            
    /// <param name="sqlstr">传入的Sql语句</param>
            
    /// <returns>DataTable</returns>
            public static DataTable GetDataTableBySQL(string SqlString)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataTable dt 
    = new DataTable();
                
    try
                {
                    ConnectionOpen();
                    comm.CommandType 
    = CommandType.Text;
                    comm.CommandText 
    = SqlString;
                    da.SelectCommand 
    = comm;
                    da.Fill(dt);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return dt;
            }

            
    /// <summary>
            
    /// 根据存储过程返回DataTable
            
    /// </summary>
            
    /// <param name="ProcedureName">存储过程名</param>
            
    /// <param name="coll">SqlParameter集合</param>
            
    /// <returns>DataTable</returns>
            public static DataTable GetDataTableByProcedure(string ProcedureName, params SqlParameter[] coll)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataTable dt 
    = new DataTable();
                
    try
                {
                    ConnectionOpen();
                    comm.Parameters.Clear();
                    comm.CommandType 
    = CommandType.StoredProcedure;
                    comm.CommandText 
    = ProcedureName;
                    
    for (int i = 0; i < coll.Length; i++)
                    {
                        comm.Parameters.Add(coll[i]);
                    }
                    da.SelectCommand 
    = comm;
                    da.Fill(dt);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return dt;
            }

            
    /// <summary>
            
    /// 根据存储过程返回DataTable
            
    /// </summary>
            
    /// <param name="ProcedureName">存储过程名称</param>
            
    /// <returns>DataTable</returns>
            public static DataTable GetDataTableByProcedure(string ProcedureName)
            {
                SqlDataAdapter da 
    = new SqlDataAdapter();
                DataTable dt 
    = new DataTable();
                
    try
                {
                    ConnectionOpen();
                    comm.Parameters.Clear();
                    comm.CommandType 
    = CommandType.StoredProcedure;
                    comm.CommandText 
    = ProcedureName;
                    da.SelectCommand 
    = comm;
                    da.Fill(dt);
                }
                
    catch (Exception ex)
                {
                    
    throw new Exception(ex.Message);
                }
                
    finally
                {
                    ConnectionClose();
                }
                
    return dt;
            }
        }
  • 相关阅读:
    Scheduler踩坑记录
    关于RedisTemplate的map存储踩坑记录
    关于HashMap的加载因子相关理解
    Mybatis 分页插件PageHelper 遇坑
    Linux 下 Mysql忘记密码重置
    Eclipse MAT和jvisualvm分析内存溢出
    使用jdk自带工具jvisualvm 分析内存dump文件
    EUREKA 删除 or 强制下线/上线 实例
    Idea 远程调试jenkins 项目
    spring 事务传播行为类型
  • 原文地址:https://www.cnblogs.com/chenqiang001/p/1676394.html
Copyright © 2011-2022 走看看