数据库封装类DataOperation(支持事务)
2006-06-01 16:35
357 查看
由于自己工作需要 经常重复写数据库的操作代码.今天我把他们写成了dll, 拿来和大家分享.希望大家提出意见.支持事务,目前还不支持所有存储过程.
DataMsSql.cs
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DataOperation
{
/// <summary>
/// MsSql操作类
/// </summary>
sealed public class DataMsSql
{
private SqlConnection dataConnection = null;
#region 构造函数
/// <summary>
/// 无参构造函数
/// </summary>
public DataMsSql()
{
dataConnection = new SqlConnection();
}
/// <summary>
/// 有参构造函数
/// </summary>
/// <param name="connectionString">数据库联接串</param>
public DataMsSql(string connectionString)
{
dataConnection = new SqlConnection(connectionString);
}
#endregion
#region 属性
/// <summary>
/// 设置或获取SqlConnection类型数据库联接dataConnection的值
/// </summary>
public SqlConnection DataConnection
{
get
{
if (dataConnection == null)
dataConnection = new SqlConnection();
return dataConnection;
}
set
{
dataConnection = value;
}
}
/// <summary>
/// 获取数据库联接的状态
/// </summary>
public ConnectionState SqlState
{
get
{
return dataConnection.State;
}
}
#endregion
#region 状态操作
/// <summary>
/// 打开数据库联接
/// </summary>
public void Open()
{
if (dataConnection.State != ConnectionState.Open)
dataConnection.Open();
}
/// <summary>
/// 关闭数据库联接
/// </summary>
public void Close()
{
if (dataConnection.State != ConnectionState.Closed)
dataConnection.Close();
}
#endregion
#region 一般数据语句操作
/// <summary>
/// 获取检索出来首行首列的值
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>结果</returns>
public object ExecuteScalar(string sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, dataConnection);
return cmd.ExecuteScalar();
}
/// <summary>
///检索数据以SqlDataReader形式返检索结果
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>SqlDataReader数据集</returns>
public SqlDataReader GetDataReadr(string sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, dataConnection);
return cmd.ExecuteReader();
}
/// <summary>
/// 检索数据以DataTable形式返检索结果
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>DataTale数据集</returns>
public DataTable GetDataTable(string sqlStr)
{
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, dataConnection);
adapter.Fill(dt);
return dt;
}
/// <summary>
/// 执行出检索以外的其它数据操作返回影响条数
/// </summary>
/// <param name="sqlStr">sql操作语句</param>
/// <returns> 操作影响条数</returns>
public int ExecuteSql(String sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, DataConnection);
return cmd.ExecuteNonQuery();
}
#endregion
#region 存储过程操作
/// <summary>
/// 执行存储过程获得DataTable数据
/// </summary>
/// <param name="sqlParameters">存储过程参数ArrayList类型的SqlParameter集合</param>
/// <param name="storedProcedureName">存储过程名</param>
/// <returns></returns>
public DataTable ProGetDataTable(ArrayList sqlParameters, string storedProcedureName)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = dataConnection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = storedProcedureName;
if(sqlParameters != null && sqlParameters.Count != 0)
foreach(object parameter in sqlParameters)
{
cmd.Parameters.Add((SqlParameter)parameter);
}
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
return dt;
}
#endregion
#region 事务操作
/// <summary>
/// 开启事务
/// </summary>
public void BeginTransaction()
{
ExecuteSql("begin transaction;");
}
/// <summary>
/// 提交事务
/// </summary>
public void Commit()
{
ExecuteSql("commit;");
}
/// <summary>
/// 回滚事务
/// </summary>
public void Rollback()
{
ExecuteSql("rollback;");
}
#endregion
}
}
有要已编译成dll的 留邮箱
DataMsSql.cs
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DataOperation
{
/// <summary>
/// MsSql操作类
/// </summary>
sealed public class DataMsSql
{
private SqlConnection dataConnection = null;
#region 构造函数
/// <summary>
/// 无参构造函数
/// </summary>
public DataMsSql()
{
dataConnection = new SqlConnection();
}
/// <summary>
/// 有参构造函数
/// </summary>
/// <param name="connectionString">数据库联接串</param>
public DataMsSql(string connectionString)
{
dataConnection = new SqlConnection(connectionString);
}
#endregion
#region 属性
/// <summary>
/// 设置或获取SqlConnection类型数据库联接dataConnection的值
/// </summary>
public SqlConnection DataConnection
{
get
{
if (dataConnection == null)
dataConnection = new SqlConnection();
return dataConnection;
}
set
{
dataConnection = value;
}
}
/// <summary>
/// 获取数据库联接的状态
/// </summary>
public ConnectionState SqlState
{
get
{
return dataConnection.State;
}
}
#endregion
#region 状态操作
/// <summary>
/// 打开数据库联接
/// </summary>
public void Open()
{
if (dataConnection.State != ConnectionState.Open)
dataConnection.Open();
}
/// <summary>
/// 关闭数据库联接
/// </summary>
public void Close()
{
if (dataConnection.State != ConnectionState.Closed)
dataConnection.Close();
}
#endregion
#region 一般数据语句操作
/// <summary>
/// 获取检索出来首行首列的值
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>结果</returns>
public object ExecuteScalar(string sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, dataConnection);
return cmd.ExecuteScalar();
}
/// <summary>
///检索数据以SqlDataReader形式返检索结果
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>SqlDataReader数据集</returns>
public SqlDataReader GetDataReadr(string sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, dataConnection);
return cmd.ExecuteReader();
}
/// <summary>
/// 检索数据以DataTable形式返检索结果
/// </summary>
/// <param name="sqlStr">sql查询串</param>
/// <returns>DataTale数据集</returns>
public DataTable GetDataTable(string sqlStr)
{
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, dataConnection);
adapter.Fill(dt);
return dt;
}
/// <summary>
/// 执行出检索以外的其它数据操作返回影响条数
/// </summary>
/// <param name="sqlStr">sql操作语句</param>
/// <returns> 操作影响条数</returns>
public int ExecuteSql(String sqlStr)
{
if (SqlState == ConnectionState.Closed)
this.Open();
SqlCommand cmd = new SqlCommand(sqlStr, DataConnection);
return cmd.ExecuteNonQuery();
}
#endregion
#region 存储过程操作
/// <summary>
/// 执行存储过程获得DataTable数据
/// </summary>
/// <param name="sqlParameters">存储过程参数ArrayList类型的SqlParameter集合</param>
/// <param name="storedProcedureName">存储过程名</param>
/// <returns></returns>
public DataTable ProGetDataTable(ArrayList sqlParameters, string storedProcedureName)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = dataConnection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = storedProcedureName;
if(sqlParameters != null && sqlParameters.Count != 0)
foreach(object parameter in sqlParameters)
{
cmd.Parameters.Add((SqlParameter)parameter);
}
SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
return dt;
}
#endregion
#region 事务操作
/// <summary>
/// 开启事务
/// </summary>
public void BeginTransaction()
{
ExecuteSql("begin transaction;");
}
/// <summary>
/// 提交事务
/// </summary>
public void Commit()
{
ExecuteSql("commit;");
}
/// <summary>
/// 回滚事务
/// </summary>
public void Rollback()
{
ExecuteSql("rollback;");
}
#endregion
}
}
有要已编译成dll的 留邮箱
相关文章推荐
- c# 数据库访问静态类 支持多条SQL语句事务操作
- java事务以及支持事务的数据库
- 什么是数据库的事务?MySql中哪些存储引擎支持事务?
- ThinkPHP5-数据库操作和事务支持
- 基于 EntityFramework 的数据库主从读写分离架构(2)- 改进配置和添加事务支持
- 同一个连接的数据库,里面的所有数据库实例之间都支持事务
- c#批量插入数据到数据库【支持事务操作】
- c#批量插入数据到数据库【支持事务操作】
- 正好整理了一下,自己做了个连接数据库的组件,支持SQLSERVER,ACCESS,ORACLE,FoxPro,MySql,IBM DB2,DBF等数据库,并且支持事务处理
- DBHelper (支持事务与数据库变更) z
- 数据库封装类DataOperation改进(支持事务、存储过程、简单使用例子)
- Spring 事务操作(银行转账案例),使用spring 对jdbc的支持完成对数据库的操作
- Android小技巧(二):为ContentProvider添加数据库事务支持
- ASP中对数据库表的操作,可使用事务处理,并支持多事务处理
- DBHelper (支持事务与数据库变更)
- 为ContentProvider添加数据库事务支持
- 【数据库开发】事务与spring的事务支持
- PowerShell应用之-批量还原数据库(支持完整,差异,事务日志)
- spring动态切换数据库支持事务
- spring动态切换数据库支持事务