数据工厂类,实现了跨数据库的操作
2016-11-01 08:44
239 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections;
namespace TEWeb2.DBConnectionLayer
{
/**/
///
/// ========================================================
/// 2009-7-3
/// Tclywork Studio
/// tclywork@163.com
/// tclywork.itpub.net
/// 数据工厂类,实现了跨数据库的操作.
/// ========================================================
///
public class DataAccess
{
#region 变量
///
/// Webconfig配置连接字符串
///
private string _confirString = "ConnectionString";
/**/
///
/// 属性,设置数据库连接字符串
///
public string ConfigString
{
get
{
return _confirString;
}
set
{
_confirString = value;
}
}
#endregion
#region 构造函数
/**/
///
/// 数据工厂类
///
public DataAccess()
{
}
/**/
///
/// 数据工厂类
///
/// web.config 关键字
public DataAccess(string configString)
{
ConfigString = configString;
}
#endregion
#region 获得数据库的类型 public string GetProviderName(string ConfigString)#region 获得数据库的类型 public string GetProviderName(string ConfigString)
/**/
///
/// 返回数据提供者
///
/// 返回数据提供者
public string GetProviderName(string ConfigString)
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (ConfigString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
}
return StringSettings.ProviderName;
}
/**/
///
/// 返回数据提供者
///
///
public string GetProviderName()
{
return GetProviderName(ConfigString);
}
#endregion
//获得连接字符串=================================================================================
#region 获得连接字符串
/**/
///
/// 获得连接字符串
///
///
public string GetConnectionString(string ConfigString)
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (ConfigString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
}
return StringSettings.ConnectionString;
}
public string GetConnectionString()
{
return GetConnectionString(ConfigString);
}
#endregion
//GetDbproviderFactory=========================
#region 返回数据工厂 public DbProviderFactory GetDbProviderFactory()#region 返回数据工厂 public DbProviderFactory GetDbProviderFactory()
/**/
///
/// 返回数据工厂
///
///
public DbProviderFactory GetDbProviderFactory()
{
DbProviderFactory f = null;
string ProviderName = GetProviderName();
switch (ProviderName)
{
case "System.Data.SqlClient":
f = GetDbProviderFactory("System.Data.SqlClient");
break;
case "System.Data.OracleClient":
f = GetDbProviderFactory("System.Data.OracleClient");
break;
case "System.Data.OleDb":
f = GetDbProviderFactory("System.Data.OleDb");
break;
default:
f = GetDbProviderFactory("System.Data.SqlClient");
break;
}
return f;
}
/**/
///
/// 返回数据工厂
///
///
///
public DbProviderFactory GetDbProviderFactory(string providername)
{
return DbProviderFactories.GetFactory(providername);
}
#endregion
//CreateConnection=============================
#region 创建数据库连接 public DbConnection CreateConnection()#region 创建数据库连接 public DbConnection CreateConnection()
/**/
///
/// 创建数据库连接
///
///
public DbConnection CreateConnection()
{
DbConnection con = GetDbProviderFactory().CreateConnection();
con.ConnectionString = GetConnectionString();
return con;
}
/**/
///
/// 创建数据库连接
///
///
///
public DbConnection CreateConnection(string provdername)
{
DbConnection con = GetDbProviderFactory(provdername).CreateConnection();
con.ConnectionString = GetConnectionString();
return con;
}
#endregion
//CreateCommand================================
#region 创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)#region 创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType,
DbParameter[] parameters)
/**/
///
/// 创建执行命令对象
///
///
///
///
///
public DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)
{
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = CreateConnection();
_command.CommandText = sql;
_command.CommandType = cmdType;
if (parameters != null && parameters.Length > 0)
{
foreach (DbParameter param in parameters)
{
_command.Parameters.Add(param);
}
}
return _command;
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 执行命令对象实例
public DbCommand CreateCommand(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return CreateCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 执行命令对象实例
public DbCommand CreateCommand(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return CreateCommand(sql, cmdtype, parameters);
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 参数
/// 执行命令对象实例
public DbCommand CreateCommand(string sql, DbParameter[] parameters)
{
return CreateCommand(sql, CommandType.Text, parameters);
}
#endregion
//CreateAdapter()==============================================
#region 创建数据适配器 CreateAdapter(string sql)#region 创建数据适配器 CreateAdapter(string sql)
/**/
///
/// 创建数据适配器
///
/// SQL,语句
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return CreateAdapter(sql, CommandType.Text, parameters);
}
/**/
///
/// 创建数据适配器
///
/// SQL语句
/// 命令类型
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return CreateAdapter(sql, cmdtype, parameters);
}
/**/
///
/// 创建数据适配器
///
/// 数据库连接字符串
/// SQL语句
/// 命令类型
/// 参数
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DbConnection _connection = CreateConnection();
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = _connection;
_command.CommandText = sql;
_command.CommandType = cmdtype;
if (parameters != null && parameters.Length > 0)
{
foreach (DbParameter _param in parameters)
{
_command.Parameters.Add(_param);
}
}
DbDataAdapter da = GetDbProviderFactory().CreateDataAdapter();
da.SelectCommand = _command;
return da;
}
#endregion
//CreateParameter===================================
#region 生成参数 public override SqlParameter CreateParameter(string field, string dbtype, string value)#region 生成参数 public override SqlParameter CreateParameter(string field, string dbtype, string value)
/**/
///
/// 创建参数
///
/// 参数字段
/// 参数类型
/// 参数值
///
public DbParameter CreateParameter(string field, string dbtype, string value)
{
DbParameter p = GetDbProviderFactory().CreateParameter();
p.ParameterName = field;
p.Value = value;
return p;
}
#endregion
//ExecuteCommand()============================================
#region 执行非查询语句,并返回受影响的记录行数 ExecuteCommand(string sql)#region 执行非查询语句,并返回受影响的记录行数 ExecuteCommand(string sql)
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 受影响记录行数
public int ExecuteCommand(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 命令类型
/// 受影响记录行数
public int ExecuteCommand(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 参数
/// 受影响记录行数
public int ExecuteCommand(string sql, DbParameter[] parameters)
{
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
///批量执行SQL语句
///
/// SQL列表
///
public bool ExecuteCommand(ArrayList SqlList)
{
DbConnection con = CreateConnection();
con.Open();
bool iserror = false;
string strerror = "";
DbTransaction SqlTran = con.BeginTransaction();
try
{
for (int i = 0; i < SqlList.Count; i++)
{
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = con;
_command.CommandText = SqlList[i].ToString();
_command.Transaction = SqlTran;
_command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
iserror = true;
strerror = ex.Message;
}
finally
{
if (iserror)
{
SqlTran.Rollback();
throw new Exception(strerror);
}
else
{
SqlTran.Commit();
}
con.Close();
}
if (iserror)
{
return false;
}
else
{
return true;
}
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 命令类型
/// 参数
/// 受影响记录行数
public int ExecuteCommand(string sql, CommandType cmdtype, DbParameter[] parameters)
{
int _result = 0;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
_command.Connection.Close();
}
return _result;
}
#endregion
//ExecuteScalar()=============================================
#region 执行非查询语句,并返回首行首列的值 ExecuteScalar(string sql)#region 执行非查询语句,并返回首行首列的值 ExecuteScalar(string sql)
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// Object
public object ExecuteScalar(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 命令类型
/// Object
public object ExecuteScalar(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 参数
/// Object
public object ExecuteScalar(string sql, DbParameter[] parameters)
{
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 命令类型
/// 参数
/// Object
public object ExecuteScalar(string sql, CommandType cmdtype, DbParameter[] parameters)
{
object _result=null;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteScalar();
}
catch
{
throw;
}
finally
{
_command.Connection.Close();
}
return _result;
}
#endregion
//ExecuteReader()=============================================
#region 执行查询,并以DataReader返回结果集 ExecuteReader(string sql)#region 执行查询,并以DataReader返回结果集 ExecuteReader(string sql)
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// IDataReader
public DbDataReader ExecuteReader(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 命令类型
/// IDataReader
public DbDataReader ExecuteReader(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 参数
/// IDataReader
public DbDataReader ExecuteReader(string sql, DbParameter[] parameters)
{
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// IDataReader
public DbDataReader ExecuteReader(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DbDataReader _result;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
throw;
}
finally
{
}
return _result;
}
#endregion
//GetDataSet()================================================
#region 执行查询,并以DataSet返回结果集 GetDataSet(string sql)#region 执行查询,并以DataSet返回结果集 GetDataSet(string sql)
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// DataSet
public DataSet GetDataSet(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 命令类型
/// DataSet
public virtual DataSet GetDataSet(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 参数
/// DataSet
public virtual DataSet GetDataSet(string sql, DbParameter[] parameters)
{
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataSet
public virtual DataSet GetDataSet(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataSet _result = new DataSet();
IDataAdapter _dataAdapter = CreateAdapter(sql, cmdtype, parameters);
try
{
_dataAdapter.Fill(_result);
}
catch
{
throw;
}
finally
{
}
return _result;
}
/**////
/// 执行查询,并以DataSet返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataSet
public virtual DataSet GetDataSet(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount);
}
#endregion
//GetDataView()===============================================
#region 执行查询,并以DataView返回结果集 GetDataView(string sql)#region 执行查询,并以DataView返回结果集 GetDataView(string sql)
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql)
{
DbParameter[] parameters = new DbParameter[0];
DataView dv = GetDataSet(sql, CommandType.Text, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
DataView dv = GetDataSet(sql, cmdtype, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, DbParameter[] parameters)
{
DataView dv = GetDataSet(sql, CommandType.Text, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataView dv = GetDataSet(sql, cmdtype, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataView
public DataView GetDataView(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount).Tables[0].DefaultView;
}
#endregion
//GetDataTable()==============================================
#region 执行查询,并以DataTable返回结果集 GetDataTable(string sql)#region 执行查询,并以DataTable返回结果集 GetDataTable(string sql)
/**/
///
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql)
{
DbParameter[] parameters = new DbParameter[0];
DataTable dt = GetDataSet(sql, CommandType.Text, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
DataTable dt = GetDataSet(sql, cmdtype, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, DbParameter[] parameters)
{
DataTable dt = GetDataSet(sql, CommandType.Text, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataTable dt = GetDataSet(sql, cmdtype, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataTable
public DataTable GetDataTable(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount).Tables[0];
}
/**////
/// 执行查询,返回以空行填充的指定条数记录集
///
/// SQL语句
/// 显示记录条数
/// DataTable
public DataTable GetDataTable(string sql, int SizeCount)
{
DataTable dt = GetDataSet(sql).Tables[0];
int b = SizeCount - dt.Rows.Count;
if (dt.Rows.Count < SizeCount)
{
for (int i = 0; i < b; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
}
return dt;
} #endregion
}
}
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections;
namespace TEWeb2.DBConnectionLayer
{
/**/
///
/// ========================================================
/// 2009-7-3
/// Tclywork Studio
/// tclywork@163.com
/// tclywork.itpub.net
/// 数据工厂类,实现了跨数据库的操作.
/// ========================================================
///
public class DataAccess
{
#region 变量
///
/// Webconfig配置连接字符串
///
private string _confirString = "ConnectionString";
/**/
///
/// 属性,设置数据库连接字符串
///
public string ConfigString
{
get
{
return _confirString;
}
set
{
_confirString = value;
}
}
#endregion
#region 构造函数
/**/
///
/// 数据工厂类
///
public DataAccess()
{
}
/**/
///
/// 数据工厂类
///
/// web.config 关键字
public DataAccess(string configString)
{
ConfigString = configString;
}
#endregion
#region 获得数据库的类型 public string GetProviderName(string ConfigString)#region 获得数据库的类型 public string GetProviderName(string ConfigString)
/**/
///
/// 返回数据提供者
///
/// 返回数据提供者
public string GetProviderName(string ConfigString)
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (ConfigString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
}
return StringSettings.ProviderName;
}
/**/
///
/// 返回数据提供者
///
///
public string GetProviderName()
{
return GetProviderName(ConfigString);
}
#endregion
//获得连接字符串=================================================================================
#region 获得连接字符串
/**/
///
/// 获得连接字符串
///
///
public string GetConnectionString(string ConfigString)
{
ConnectionStringSettingsCollection ConfigStringCollention = ConfigurationManager.ConnectionStrings;
if (ConfigStringCollention == null || ConfigStringCollention.Count <= 0)
{
throw new Exception("web.config 中无连接字符串!");
}
ConnectionStringSettings StringSettings = null;
if (ConfigString == string.Empty)
{
StringSettings = ConfigurationManager.ConnectionStrings["ConnectionString"];
}
else
{
StringSettings = ConfigurationManager.ConnectionStrings[ConfigString];
}
return StringSettings.ConnectionString;
}
public string GetConnectionString()
{
return GetConnectionString(ConfigString);
}
#endregion
//GetDbproviderFactory=========================
#region 返回数据工厂 public DbProviderFactory GetDbProviderFactory()#region 返回数据工厂 public DbProviderFactory GetDbProviderFactory()
/**/
///
/// 返回数据工厂
///
///
public DbProviderFactory GetDbProviderFactory()
{
DbProviderFactory f = null;
string ProviderName = GetProviderName();
switch (ProviderName)
{
case "System.Data.SqlClient":
f = GetDbProviderFactory("System.Data.SqlClient");
break;
case "System.Data.OracleClient":
f = GetDbProviderFactory("System.Data.OracleClient");
break;
case "System.Data.OleDb":
f = GetDbProviderFactory("System.Data.OleDb");
break;
default:
f = GetDbProviderFactory("System.Data.SqlClient");
break;
}
return f;
}
/**/
///
/// 返回数据工厂
///
///
///
public DbProviderFactory GetDbProviderFactory(string providername)
{
return DbProviderFactories.GetFactory(providername);
}
#endregion
//CreateConnection=============================
#region 创建数据库连接 public DbConnection CreateConnection()#region 创建数据库连接 public DbConnection CreateConnection()
/**/
///
/// 创建数据库连接
///
///
public DbConnection CreateConnection()
{
DbConnection con = GetDbProviderFactory().CreateConnection();
con.ConnectionString = GetConnectionString();
return con;
}
/**/
///
/// 创建数据库连接
///
///
///
public DbConnection CreateConnection(string provdername)
{
DbConnection con = GetDbProviderFactory(provdername).CreateConnection();
con.ConnectionString = GetConnectionString();
return con;
}
#endregion
//CreateCommand================================
#region 创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)#region 创建执行命令对象 public override DbCommand CreateCommand(string sql, CommandType cmdType,
DbParameter[] parameters)
/**/
///
/// 创建执行命令对象
///
///
///
///
///
public DbCommand CreateCommand(string sql, CommandType cmdType, DbParameter[] parameters)
{
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = CreateConnection();
_command.CommandText = sql;
_command.CommandType = cmdType;
if (parameters != null && parameters.Length > 0)
{
foreach (DbParameter param in parameters)
{
_command.Parameters.Add(param);
}
}
return _command;
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 执行命令对象实例
public DbCommand CreateCommand(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return CreateCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 执行命令对象实例
public DbCommand CreateCommand(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return CreateCommand(sql, cmdtype, parameters);
}
/**/
///
/// 创建执行命令对象
///
/// SQL语句
/// 参数
/// 执行命令对象实例
public DbCommand CreateCommand(string sql, DbParameter[] parameters)
{
return CreateCommand(sql, CommandType.Text, parameters);
}
#endregion
//CreateAdapter()==============================================
#region 创建数据适配器 CreateAdapter(string sql)#region 创建数据适配器 CreateAdapter(string sql)
/**/
///
/// 创建数据适配器
///
/// SQL,语句
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return CreateAdapter(sql, CommandType.Text, parameters);
}
/**/
///
/// 创建数据适配器
///
/// SQL语句
/// 命令类型
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return CreateAdapter(sql, cmdtype, parameters);
}
/**/
///
/// 创建数据适配器
///
/// 数据库连接字符串
/// SQL语句
/// 命令类型
/// 参数
/// 数据适配器实例
public DbDataAdapter CreateAdapter(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DbConnection _connection = CreateConnection();
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = _connection;
_command.CommandText = sql;
_command.CommandType = cmdtype;
if (parameters != null && parameters.Length > 0)
{
foreach (DbParameter _param in parameters)
{
_command.Parameters.Add(_param);
}
}
DbDataAdapter da = GetDbProviderFactory().CreateDataAdapter();
da.SelectCommand = _command;
return da;
}
#endregion
//CreateParameter===================================
#region 生成参数 public override SqlParameter CreateParameter(string field, string dbtype, string value)#region 生成参数 public override SqlParameter CreateParameter(string field, string dbtype, string value)
/**/
///
/// 创建参数
///
/// 参数字段
/// 参数类型
/// 参数值
///
public DbParameter CreateParameter(string field, string dbtype, string value)
{
DbParameter p = GetDbProviderFactory().CreateParameter();
p.ParameterName = field;
p.Value = value;
return p;
}
#endregion
//ExecuteCommand()============================================
#region 执行非查询语句,并返回受影响的记录行数 ExecuteCommand(string sql)#region 执行非查询语句,并返回受影响的记录行数 ExecuteCommand(string sql)
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 受影响记录行数
public int ExecuteCommand(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 命令类型
/// 受影响记录行数
public int ExecuteCommand(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 参数
/// 受影响记录行数
public int ExecuteCommand(string sql, DbParameter[] parameters)
{
return ExecuteCommand(sql, CommandType.Text, parameters);
}
/**/
///
///批量执行SQL语句
///
/// SQL列表
///
public bool ExecuteCommand(ArrayList SqlList)
{
DbConnection con = CreateConnection();
con.Open();
bool iserror = false;
string strerror = "";
DbTransaction SqlTran = con.BeginTransaction();
try
{
for (int i = 0; i < SqlList.Count; i++)
{
DbCommand _command = GetDbProviderFactory().CreateCommand();
_command.Connection = con;
_command.CommandText = SqlList[i].ToString();
_command.Transaction = SqlTran;
_command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
iserror = true;
strerror = ex.Message;
}
finally
{
if (iserror)
{
SqlTran.Rollback();
throw new Exception(strerror);
}
else
{
SqlTran.Commit();
}
con.Close();
}
if (iserror)
{
return false;
}
else
{
return true;
}
}
/**/
///
/// 执行非查询语句,并返回受影响的记录行数
///
/// SQL语句
/// 命令类型
/// 参数
/// 受影响记录行数
public int ExecuteCommand(string sql, CommandType cmdtype, DbParameter[] parameters)
{
int _result = 0;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
_command.Connection.Close();
}
return _result;
}
#endregion
//ExecuteScalar()=============================================
#region 执行非查询语句,并返回首行首列的值 ExecuteScalar(string sql)#region 执行非查询语句,并返回首行首列的值 ExecuteScalar(string sql)
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// Object
public object ExecuteScalar(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 命令类型
/// Object
public object ExecuteScalar(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 参数
/// Object
public object ExecuteScalar(string sql, DbParameter[] parameters)
{
return ExecuteScalar(sql, CommandType.Text, parameters);
}
/**////
/// 执行非查询语句,并返回首行首列的值
///
/// SQL语句
/// 命令类型
/// 参数
/// Object
public object ExecuteScalar(string sql, CommandType cmdtype, DbParameter[] parameters)
{
object _result=null;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteScalar();
}
catch
{
throw;
}
finally
{
_command.Connection.Close();
}
return _result;
}
#endregion
//ExecuteReader()=============================================
#region 执行查询,并以DataReader返回结果集 ExecuteReader(string sql)#region 执行查询,并以DataReader返回结果集 ExecuteReader(string sql)
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// IDataReader
public DbDataReader ExecuteReader(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 命令类型
/// IDataReader
public DbDataReader ExecuteReader(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 参数
/// IDataReader
public DbDataReader ExecuteReader(string sql, DbParameter[] parameters)
{
return ExecuteReader(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataReader返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// IDataReader
public DbDataReader ExecuteReader(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DbDataReader _result;
DbCommand _command = CreateCommand(sql, cmdtype, parameters);
try
{
_command.Connection.Open();
_result = _command.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
throw;
}
finally
{
}
return _result;
}
#endregion
//GetDataSet()================================================
#region 执行查询,并以DataSet返回结果集 GetDataSet(string sql)#region 执行查询,并以DataSet返回结果集 GetDataSet(string sql)
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// DataSet
public DataSet GetDataSet(string sql)
{
DbParameter[] parameters = new DbParameter[0];
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 命令类型
/// DataSet
public virtual DataSet GetDataSet(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 参数
/// DataSet
public virtual DataSet GetDataSet(string sql, DbParameter[] parameters)
{
return GetDataSet(sql, CommandType.Text, parameters);
}
/**////
/// 执行查询,并以DataSet返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataSet
public virtual DataSet GetDataSet(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataSet _result = new DataSet();
IDataAdapter _dataAdapter = CreateAdapter(sql, cmdtype, parameters);
try
{
_dataAdapter.Fill(_result);
}
catch
{
throw;
}
finally
{
}
return _result;
}
/**////
/// 执行查询,并以DataSet返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataSet
public virtual DataSet GetDataSet(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount);
}
#endregion
//GetDataView()===============================================
#region 执行查询,并以DataView返回结果集 GetDataView(string sql)#region 执行查询,并以DataView返回结果集 GetDataView(string sql)
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql)
{
DbParameter[] parameters = new DbParameter[0];
DataView dv = GetDataSet(sql, CommandType.Text, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
DataView dv = GetDataSet(sql, cmdtype, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, DbParameter[] parameters)
{
DataView dv = GetDataSet(sql, CommandType.Text, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataView
public DataView GetDataView(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataView dv = GetDataSet(sql, cmdtype, parameters).Tables[0].DefaultView;
return dv;
}
/**////
/// 执行查询,并以DataView返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataView
public DataView GetDataView(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount).Tables[0].DefaultView;
}
#endregion
//GetDataTable()==============================================
#region 执行查询,并以DataTable返回结果集 GetDataTable(string sql)#region 执行查询,并以DataTable返回结果集 GetDataTable(string sql)
/**/
///
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql)
{
DbParameter[] parameters = new DbParameter[0];
DataTable dt = GetDataSet(sql, CommandType.Text, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, CommandType cmdtype)
{
DbParameter[] parameters = new DbParameter[0];
DataTable dt = GetDataSet(sql, cmdtype, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, DbParameter[] parameters)
{
DataTable dt = GetDataSet(sql, CommandType.Text, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回结果集
///
/// SQL语句
/// 命令类型
/// 参数
/// DataTable
public DataTable GetDataTable(string sql, CommandType cmdtype, DbParameter[] parameters)
{
DataTable dt = GetDataSet(sql, cmdtype, parameters).Tables[0];
return dt;
}
/**////
/// 执行查询,并以DataTable返回指定记录的结果集
///
/// SQL语句
/// 开始索引
/// 显示记录
/// DataTable
public DataTable GetDataTable(string sql, int StartIndex, int RecordCount)
{
return GetDataSet(sql, StartIndex, RecordCount).Tables[0];
}
/**////
/// 执行查询,返回以空行填充的指定条数记录集
///
/// SQL语句
/// 显示记录条数
/// DataTable
public DataTable GetDataTable(string sql, int SizeCount)
{
DataTable dt = GetDataSet(sql).Tables[0];
int b = SizeCount - dt.Rows.Count;
if (dt.Rows.Count < SizeCount)
{
for (int i = 0; i < b; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
}
}
return dt;
} #endregion
}
}
相关文章推荐
- 数据工厂类,实现了跨数据库的操作
- 一个javabean轻松实现对数据库的各种操作
- 用api实现数据库的操作!
- 用强制订阅实现数据库同步操作
- 用强制订阅实现数据库同步操作
- 如何实现每天定时对数据库的操作
- 实现VSTO操作WORD之三 --------实现WORD与数据库相互操作
- 如何实现每天定时对数据库的操作
- 使用Adoconnection实现对两个数据库的操作
- 如何实现快速地从超大数据库中提取数据并进行相关的操作
- 一个javabean轻松实现对数据库的各种操作
- 使用ADO操作SQL SERVER 通过'OLE DB 访问 ACCESS 数据库 ,实现数据交换
- NHibernate是能实现多数据库操作吗?
- 用api实现数据库的操作!
- 一个javabean轻松实现对数据库的各种操作
- 再谈Abstract Factory模式来实现数据库操作的类
- 使用XML封装数据库操作语句的实现(zz)
- 如何实现每天定时对数据库的操作
- VB.NET 中启动ADO.NET事务,实现对数据库操作的整体性。
- 在ASP中简化数据库操作的思路和实现