数据访问抽象基础类/// <summary>
数据访问抽象基础类    
/// 数据访问抽象基础类
数据访问抽象基础类    
/// </summary>
数据访问抽象基础类    
public abstract class SQLHelper
数据访问抽象基础类    {
数据访问抽象基础类        
//数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.        
数据访问抽象基础类        
public static string connectionString = ConfigurationManager.AppSettings["ConnectionString"];
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
/// 准备执行一个命令
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="cmd">sql命令</param>
数据访问抽象基础类        
/// <param name="conn">Sql连接</param>
数据访问抽象基础类        
/// <param name="trans">Sql事务</param>
数据访问抽象基础类        
/// <param name="cmdType">命令类型例如 存储过程或者文本</param>
数据访问抽象基础类        
/// <param name="cmdText">命令文本,例如:Select * from Products</param>
数据访问抽象基础类        
/// <param name="cmdParms">执行命令的参数</param>
数据访问抽象基础类        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter
[] cmdParms)
数据访问抽象基础类        {
数据访问抽象基础类
数据访问抽象基础类            
if (conn.State != ConnectionState.Open)
数据访问抽象基础类                conn.
Open();
数据访问抽象基础类
数据访问抽象基础类            cmd.Connection 
= conn;
数据访问抽象基础类            cmd.CommandText 
= cmdText;
数据访问抽象基础类
数据访问抽象基础类            
if (trans != null)
数据访问抽象基础类                cmd.
Transaction = trans;
数据访问抽象基础类
数据访问抽象基础类            cmd.CommandType 
= cmdType;
数据访问抽象基础类
数据访问抽象基础类            
if (cmdParms != null)
数据访问抽象基础类            {
数据访问抽象基础类                foreach (SqlParameter parm 
in cmdParms)
数据访问抽象基础类                    cmd.Parameters.
Add(parm);
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
///  给定连接的数据库用假设参数执行一个sql命令(不返回数据集)
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="connectionString">一个有效的连接字符串</param>
数据访问抽象基础类        
/// <param name="commandType">命令类型(存储过程, 文本, 等等)</param>
数据访问抽象基础类        
/// <param name="commandText">存储过程名称或者sql命令语句</param>
数据访问抽象基础类        
/// <param name="commandParameters">执行命令所用参数的集合</param>
数据访问抽象基础类        
/// <returns>执行命令所影响的行数</returns>
数据访问抽象基础类        
public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
数据访问抽象基础类        {
数据访问抽象基础类
数据访问抽象基础类            SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类
数据访问抽象基础类            using (SqlConnection conn 
= new SqlConnection(connectionString))
数据访问抽象基础类            {
数据访问抽象基础类                PrepareCommand(cmd, conn, 
null, cmdType, cmdText, commandParameters);
数据访问抽象基础类                
int val = cmd.ExecuteNonQuery();
数据访问抽象基础类                cmd.Parameters.Clear();
数据访问抽象基础类                
return val;
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
/// 执行多条SQL语句,实现数据库事务。
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="SQLStringList">多条SQL语句</param>        
数据访问抽象基础类        
public static int ExecuteNonQuerySqlTran(List<String> StringList)
数据访问抽象基础类        {
数据访问抽象基础类            using (SqlConnection conn 
= new SqlConnection(connectionString))
数据访问抽象基础类            {
数据访问抽象基础类                conn.
Open();
数据访问抽象基础类                SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类                cmd.Connection 
= conn;
数据访问抽象基础类                SqlTransaction trans 
= conn.BeginTransaction();
数据访问抽象基础类                cmd.
Transaction = trans;
数据访问抽象基础类                try
数据访问抽象基础类                {
数据访问抽象基础类                    
int count = 0;
数据访问抽象基础类                    
for (int i = 0; i < StringList.Count; i++)
数据访问抽象基础类                    {
数据访问抽象基础类                        string strsql 
= StringList[i];
数据访问抽象基础类                        
if (strsql.Trim().Length > 1)
数据访问抽象基础类                        {
数据访问抽象基础类                            cmd.CommandText 
= strsql;
数据访问抽象基础类                            
count += cmd.ExecuteNonQuery();
数据访问抽象基础类                        }
数据访问抽象基础类                    }
数据访问抽象基础类                    trans.
Commit();
数据访问抽象基础类                    
return count;
数据访问抽象基础类                }
数据访问抽象基础类                catch
数据访问抽象基础类                {
数据访问抽象基础类                    trans.
Rollback();
数据访问抽象基础类                    
return 0;
数据访问抽象基础类                }
数据访问抽象基础类                finally
数据访问抽象基础类                {
数据访问抽象基础类                    cmd.Dispose();
数据访问抽象基础类                    conn.
Close();
数据访问抽象基础类                }
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类        
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
/// 用执行的数据库连接执行一个返回数据集的sql命令
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="connectionString">一个有效的连接字符串</param>
数据访问抽象基础类        
/// <param name="commandType">命令类型(存储过程, 文本, 等等)</param>
数据访问抽象基础类        
/// <param name="commandText">存储过程名称或者sql命令语句</param>
数据访问抽象基础类        
/// <param name="commandParameters">执行命令所用参数的集合</param>
数据访问抽象基础类        
/// <returns>包含结果的读取器</returns>
数据访问抽象基础类        
public static SqlDataReader ExecuteReader(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
数据访问抽象基础类        {
数据访问抽象基础类            
//创建一个SqlCommand对象
数据访问抽象基础类            SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类            
//创建一个SqlConnection对象
数据访问抽象基础类            SqlConnection conn 
= new SqlConnection(connectionString);
数据访问抽象基础类
数据访问抽象基础类            
//在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
数据访问抽象基础类            
//因此commandBehaviour.CloseConnection 就不会执行
数据访问抽象基础类            try
数据访问抽象基础类            {
数据访问抽象基础类                
//调用 PrepareCommand 方法,对 SqlCommand 对象设置参数
数据访问抽象基础类                PrepareCommand(cmd, conn, 
null, cmdType, cmdText, commandParameters);
数据访问抽象基础类                
//调用 SqlCommand  的 ExecuteReader 方法
数据访问抽象基础类                SqlDataReader reader 
= cmd.ExecuteReader(CommandBehavior.CloseConnection);
数据访问抽象基础类                
//清除参数
数据访问抽象基础类                cmd.Parameters.Clear();
数据访问抽象基础类                
return reader;
数据访问抽象基础类            }
数据访问抽象基础类            catch
数据访问抽象基础类            {
数据访问抽象基础类                
//关闭连接,抛出异常
数据访问抽象基础类                conn.
Close();
数据访问抽象基础类                throw;
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
/// 用指定的数据库连接字符串执行一个命令并返回一个数据集的第一列
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
///<param name="connectionString">一个有效的连接字符串</param>
数据访问抽象基础类        
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
数据访问抽象基础类        
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
数据访问抽象基础类        
/// <param name="commandParameters">执行命令所用参数的集合</param>
数据访问抽象基础类        
/// <returns>用 Convert.To{Type}把类型转换为想要的 </returns>
数据访问抽象基础类        
public static object ExecuteScalar(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
数据访问抽象基础类        {
数据访问抽象基础类            SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类            using (SqlConnection connection 
= new SqlConnection(connectionString))
数据访问抽象基础类            {
数据访问抽象基础类                PrepareCommand(cmd, connection, 
null, cmdType, cmdText, commandParameters);
数据访问抽象基础类                object val 
= cmd.ExecuteScalar();
数据访问抽象基础类                cmd.Parameters.Clear();
数据访问抽象基础类                
return val;
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
/// 返回数据集DataSet
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
数据访问抽象基础类        
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
数据访问抽象基础类        
/// <param name="commandParameters">执行命令所用参数的集合</param>
数据访问抽象基础类        
/// <returns>返回DataSet</returns>
数据访问抽象基础类        
public static DataSet ExecuteDataset(CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
数据访问抽象基础类        {
数据访问抽象基础类            using (SqlConnection connection 
= new SqlConnection(connectionString))
数据访问抽象基础类            {
数据访问抽象基础类                SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类                PrepareCommand(cmd, connection, 
null, cmdType, cmdText, commandParameters);
数据访问抽象基础类                using (SqlDataAdapter da 
= new SqlDataAdapter(cmd))
数据访问抽象基础类                {
数据访问抽象基础类                    DataSet ds 
= new DataSet();
数据访问抽象基础类                    try
数据访问抽象基础类                    {
数据访问抽象基础类                        da.Fill(ds, "ds");
数据访问抽象基础类                        cmd.Parameters.Clear();
数据访问抽象基础类                    }
数据访问抽象基础类                    catch (System.Data.SqlClient.SqlException ex)
数据访问抽象基础类                    {
数据访问抽象基础类                        throw new Exception(ex.Message);
数据访问抽象基础类                    }
数据访问抽象基础类                    finally
数据访问抽象基础类                    {
数据访问抽象基础类                        cmd.Dispose();
数据访问抽象基础类                        connection.
Close();
数据访问抽象基础类                    }
数据访问抽象基础类                    
return ds;
数据访问抽象基础类                }
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类
数据访问抽象基础类        
/// <summary>
数据访问抽象基础类        
///  返回数据集DataSet
数据访问抽象基础类        
/// </summary>
数据访问抽象基础类        
/// <param name="int_PageSize"></param>
数据访问抽象基础类        
/// <param name="int_CurrentPageIndex"></param>
数据访问抽象基础类        
/// <param name="cmdType"></param>
数据访问抽象基础类        
/// <param name="cmdText"></param>
数据访问抽象基础类        
/// <param name="cmdParms"></param>
数据访问抽象基础类        
/// <returns></returns>
数据访问抽象基础类        
public static DataSet ExecuteDataset(int int_PageSize, int int_CurrentPageIndex, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
数据访问抽象基础类        {
数据访问抽象基础类            using (SqlConnection connection 
= new SqlConnection(connectionString))
数据访问抽象基础类            {
数据访问抽象基础类                SqlCommand cmd 
= new SqlCommand();
数据访问抽象基础类                PrepareCommand(cmd, connection, 
null, cmdType, cmdText, commandParameters);
数据访问抽象基础类                using (SqlDataAdapter da 
= new SqlDataAdapter(cmd))
数据访问抽象基础类                {
数据访问抽象基础类                    DataSet ds 
= new DataSet();
数据访问抽象基础类                    try
数据访问抽象基础类                    {
数据访问抽象基础类                        
if (int_PageSize == 0 && int_CurrentPageIndex == 0)
数据访问抽象基础类                        {
数据访问抽象基础类                            da.Fill(ds, "ds");
数据访问抽象基础类                        }
数据访问抽象基础类                        
else
数据访问抽象基础类                        {
数据访问抽象基础类                            
int int_Page = int_PageSize * (int_CurrentPageIndex - 1);
数据访问抽象基础类                            
if (int_Page < 0)
数据访问抽象基础类                            {
数据访问抽象基础类                                int_Page 
= 0;
数据访问抽象基础类                            }
数据访问抽象基础类                            da.Fill(ds, int_Page, int_PageSize, "ds");
数据访问抽象基础类                        }
数据访问抽象基础类                        cmd.Parameters.Clear();
数据访问抽象基础类                    }
数据访问抽象基础类                    catch (System.Data.SqlClient.SqlException ex)
数据访问抽象基础类                    {
数据访问抽象基础类                        throw new Exception(ex.Message);
数据访问抽象基础类                    }
数据访问抽象基础类                    finally
数据访问抽象基础类                    {
数据访问抽象基础类                        cmd.Dispose();
数据访问抽象基础类                        connection.
Close();
数据访问抽象基础类                    }
数据访问抽象基础类                    
return ds;
数据访问抽象基础类                }
数据访问抽象基础类            }
数据访问抽象基础类        }
数据访问抽象基础类    }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-08-09
  • 2021-09-29
猜你喜欢
  • 2022-12-23
  • 2021-12-17
  • 2021-12-28
  • 2022-01-06
  • 2022-12-23
  • 2021-10-06
相关资源
相似解决方案