C#操作SQL SERVER数据库通用类
来源:互联网 发布:杭州麦子地美工 编辑:程序博客网 时间:2024/04/20 11:59
/* * 说明 * 功能说明:数据访问封装。所有数据都要通过这个类定义的dbConnection访问数据库。同时,定义了通用的cmd,以及cmd常用的访问存储过程的方法RunPro * * * */ using System; using System.Data; using System.Data.SqlClient; namespace insurer { /// <summary> /// DataAccess 的摘要说明。 /// </summary> public class DataAccess { private readonly string SQLCONNECTSTR = "server=(local);uid=sa;pwd=lwrong;database=insurer"; private SqlConnection dbConnection; private readonly string RETUENVALUE = "RETURNVALUE"; //判断要不要启动事务 private bool startrans = false; //为解决多笔数据导入的问题,特添加的事务处理属性 private SqlTransaction trans = null; //定义是否启动事务属性 public bool StartTrans { get { return startrans; } set { startrans = value; } } //定义事务 public SqlTransaction Trans { get { return trans; } set { if (value != null) { trans = value; } } } //创建打开dbConnection对象 public void OpenConnection() { if ( dbConnection == null ) { dbConnection = new SqlConnection(SQLCONNECTSTR); } if ( dbConnection.State == ConnectionState.Closed ) { try { dbConnection.Open(); } catch(Exception ex) { SystemError.SystemLog(ex.Message); } finally { } } } //释放dbConnection对象 public void CloseConnection() { if (dbConnection != null) { if (dbConnection.State == ConnectionState.Open) { dbConnection.Dispose(); dbConnection = null; } } } // //创建cmd,注意dbconnection在该函数中创建,但没有在这函数中释放。 //在正确的面向对象设计方法中,对象应该是谁创建,谁就应该负责释放。按这个观点,这个过程有些不安全!!!! private SqlCommand CreateCommand(string ProName,SqlParameter[] prams) { OpenConnection(); SqlCommand cmd = new SqlCommand(ProName,dbConnection); cmd.CommandType = CommandType.StoredProcedure; //如果进行事务处理,那么对cmd的Transaction的事务赋值 if (StartTrans) { cmd.Transaction = Trans; } if ( prams != null) { foreach(SqlParameter parameter in prams) { cmd.Parameters.Add(parameter); } } //cmd.Parameters.Add( return cmd; } /// <summary> /// 创建cmd,并执行相应的操作。 然后释放cmd! /// /// 该函数是执行cmd没有返回值,且没有参数的方法。 /// </summary> /// <param name="ProName"></param> public bool RunProc(string ProName) { SqlCommand cmd = CreateCommand(ProName,null); bool k = false; try { k = (bool)cmd.ExecuteScalar(); } catch(Exception ex) { SystemError.SystemLog(ex.Message); } finally { cmd.Dispose(); } return k; } /// <summary> /// 创建cmd,并执行相应的操作。 然后释放cmd! /// /// 该函数是执行cmd没有返回值,但有参数的方法。 /// </summary> /// <param name="ProName"></param> /// <param name="prams"></param> public bool RunProc(string ProName,SqlParameter[] prams) { SqlCommand cmd = CreateCommand(ProName,prams); bool k = false; try { k = (bool) cmd.ExecuteScalar(); } catch(Exception ex) { SystemError.SystemLog(ex.Message); } finally { cmd.Dispose(); //Close(); } return k; } /// <summary> /// 创建cmd,并执行相应的操作。 然后释放cmd! /// /// 该函数是执行cmd带有返回值,但没有参数的方法。 /// </summary> /// <param name="ProName"></param> /// <param name="dataReader"></param> public void RunProc(string ProName,out SqlDataReader dataReader) { SqlCommand cmd = CreateCommand(ProName,null); dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); try { } catch(Exception ex) { SystemError.SystemLog(ex.Message); } finally { cmd.Dispose(); } } /// <summary> /// 创建cmd,并执行相应的操作。 然后释放cmd! /// /// 该函数是执行cmd带有返回值,且有参数的方法。 /// </summary> /// <param name="ProName"></param> /// <param name="prams"></param> /// <param name="dataReader"></param> public void RunProc(string ProName,SqlParameter[] prams,out SqlDataReader dataReader) { SqlCommand cmd = CreateCommand(ProName,prams); dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); try { } catch(Exception ex) { SystemError.SystemLog(ex.Message); } finally { cmd.Dispose(); } } /// <summary> /// 创建cmd的参数 /// 该方法的思路就是按条件生成一个SqlParameter对象。 /// 生成对象后,再给对象赋相应的返回值类型 /// </summary> /// <param name="ParamName"></param> /// <param name="DbType"></param> /// <param name="size"></param> /// <param name="direction"></param> /// <param name="Value"></param> /// <returns></returns> public SqlParameter CreateParam(string ParamName, SqlDbType DbType, int size,ParameterDirection direction,object Value) { SqlParameter param; if (size > 0) { param = new SqlParameter(ParamName,DbType,size); } else { param = new SqlParameter(ParamName,DbType); } param.Direction = direction; param.Value = Value; return param; } /// <summary> /// 创建cmd的输入参数 /// </summary> /// <param name="ParamName"></param> /// <param name="DbType"></param> /// <param name="size"></param> /// <param name="Value"></param> /// <returns></returns> public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int size, object Value) { return CreateParam(ParamName,DbType,size,ParameterDirection.Input,Value); } /// <summary> /// 创建cmd的输出参数 /// </summary> /// <param name="ParamName"></param> /// <param name="DbType"></param> /// <param name="size"></param> /// <returns></returns> public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int size) { return CreateParam(ParamName,DbType,size,ParameterDirection.Output,null); } /// <summary> /// 创建cmd带有返回值的参数 /// </summary> /// <param name="ParamName"></param> /// <param name="DbType"></param> /// <param name="size"></param> /// <returns></returns> public SqlParameter CreateReturnParam(string ParamName,SqlDbType DbType, int size) { return CreateParam(ParamName,DbType,size,ParameterDirection.ReturnValue,null); } //开始一个事务 public void BeginTrans() { OpenConnection(); Trans = dbConnection.BeginTransaction(IsolationLevel.Serializable); } public void Commit() { if (Trans != null) { Trans.Commit(); } } public void Rollback() { if (Trans != null) { Trans.Rollback(); } } } }
- C#操作SQL Server数据库通用类
- C#操作SQL SERVER数据库通用类
- C#操作MS SQL Server 数据库的通用类
- C#操作SQL Server通用类
- C# SQL数据库操作通用类
- SQL SERVER C#数据库操作类
- sql server C#数据库操作类(转)
- C#操作sql server 数据库访问类
- c# 数据库操作类sql server篇
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- C#操作SQL Server数据库
- 4 堆
- php Filesystem
- 建立matlabR2012b的快捷方式
- (八)绘图函数
- 全文索引优化sql server 的like查询
- C#操作SQL SERVER数据库通用类
- Js 技巧
- 商务谈判技巧
- Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
- Spring AOP 实现原理与 CGLIB 应用
- IIS进行发布时WCF服务时出现“The underlying provider failed on Open.”错误。
- hibernate关联表查询报错org.springframework.orm.hibernate3.HibernateQuery illegal syntax near collection: id
- 工具索引
- 第四篇 操作80*25彩色字符显示缓冲区