在项目开发中,数据库的访问是一个最基本的操作,于是在项目开发中,总结出了一个数据库访问类,使用的Enterprise Library 2.0 。代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Practices.EnterpriseLibrary;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using System.Data.SqlClient;
namespace DEMO
{
#region SQLHelper
/// <summary>
/// SQLHelper SQL Server数据库访问基类
/// 作者:zjp
/// 时间:2007-9-11
/// </summary>
class SQLHelper
{
#region Static Declare
/// <summary>
/// Oracle数据库
/// </summary>
private static Database db = DatabaseFactory.CreateDatabase();
#endregion
#region FillDataSet_SQL
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_SQL(string strSQL, SqlParameter[] paramValues, DataSet dataSet, string[] TableName)
{
try
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
db.LoadDataSet(dbc, dataSet, TableName);
}
catch
{
return;
}
}
public static DbConnection getCon()
{
DbConnection conn = db.CreateConnection();
return conn;
}
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_SQL(string strSQL, SqlParameter[] paramValues, DataSet dataSet, string TableName)
{
try
{
FillDataSet_SQL(strSQL, paramValues, dataSet, new string[] { TableName });
}
catch
{
return;
}
}
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static DataSet FillDataSet_SQL(string strSQL, SqlParameter[] paramValues)
{
try
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
return db.ExecuteDataSet(dbc);
}
catch
{
return null;
}
}
#endregion
#region FillDataSet_PROC
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm, DataSet dataSet, string[] TableNames)
{
try
{
DbCommand dbc = db.GetStoredProcCommand(strStoredProcedureName);
if (sqlParm != null)
{
//添加参数
dbc.Parameters.AddRange(sqlParm);
}
//执行存储过程返回数据集
db.LoadDataSet(dbc, dataSet, TableNames);
}
catch
{
return;
}
}
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm, DataSet dataSet, string TableNames)
{
try
{
FillDataSet_PROC(strStoredProcedureName, sqlParm, dataSet, new string[] { TableNames });
}
catch
{
return;
}
}
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static DataSet FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm)
{
try
{
DbCommand dbc = db.GetStoredProcCommand(strStoredProcedureName);
if (sqlParm != null)
{
//添加参数
dbc.Parameters.AddRange(sqlParm);
}
//执行存储过程返回数据集
return db.ExecuteDataSet(dbc);
}
catch
{
return null;
}
}
#endregion
#region ExcuteNonQuery_SQL
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <returns></returns>
public static int ExcuteNonQuery_SQL(string strSQL, SqlParameter[] paramValues)
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
int i = db.ExecuteNonQuery(dbc);
return i;
}
#endregion
#region ExcuteNonQuery_PRO
/// <summary>
/// 执行存储过程返回是否执行成功
/// </summary>
/// <param name="strProcedureName"></param>
/// <param name="sqlParm"></param>
/// <returns></returns>
public static bool ExcuteNonQuery_PRO(string strProcedureName, SqlParameter[] sqlParm)
{
int i = 0;
DbCommand dbc = db.GetStoredProcCommand(strProcedureName);
if (sqlParm != null)
{
dbc.Parameters.AddRange(sqlParm);
}
i = db.ExecuteNonQuery(dbc);
return true;
}
#endregion
#region ExecuteScale
/// <summary>
/// 执行存储过程返回第一行,第一列的值
/// </summary>
/// <param name="strName"></param>
/// <returns></returns>
public static object ExecuteScale(string strName, SqlParameter[] param)
{
DbCommand dbc = db.GetStoredProcCommand(strName);
if (param != null)
{
dbc.Parameters.AddRange(param);
}
return db.ExecuteScalar(dbc);
}
#endregion
}
#endregion
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Microsoft.Practices.EnterpriseLibrary;
using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;
using System.Data.SqlClient;
namespace DEMO
{
#region SQLHelper
/// <summary>
/// SQLHelper SQL Server数据库访问基类
/// 作者:zjp
/// 时间:2007-9-11
/// </summary>
class SQLHelper
{
#region Static Declare
/// <summary>
/// Oracle数据库
/// </summary>
private static Database db = DatabaseFactory.CreateDatabase();
#endregion
#region FillDataSet_SQL
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_SQL(string strSQL, SqlParameter[] paramValues, DataSet dataSet, string[] TableName)
{
try
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
db.LoadDataSet(dbc, dataSet, TableName);
}
catch
{
return;
}
}
public static DbConnection getCon()
{
DbConnection conn = db.CreateConnection();
return conn;
}
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_SQL(string strSQL, SqlParameter[] paramValues, DataSet dataSet, string TableName)
{
try
{
FillDataSet_SQL(strSQL, paramValues, dataSet, new string[] { TableName });
}
catch
{
return;
}
}
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static DataSet FillDataSet_SQL(string strSQL, SqlParameter[] paramValues)
{
try
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
return db.ExecuteDataSet(dbc);
}
catch
{
return null;
}
}
#endregion
#region FillDataSet_PROC
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm, DataSet dataSet, string[] TableNames)
{
try
{
DbCommand dbc = db.GetStoredProcCommand(strStoredProcedureName);
if (sqlParm != null)
{
//添加参数
dbc.Parameters.AddRange(sqlParm);
}
//执行存储过程返回数据集
db.LoadDataSet(dbc, dataSet, TableNames);
}
catch
{
return;
}
}
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static void FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm, DataSet dataSet, string TableNames)
{
try
{
FillDataSet_PROC(strStoredProcedureName, sqlParm, dataSet, new string[] { TableNames });
}
catch
{
return;
}
}
/// <summary>
/// 使用存储过程返回数据集
/// </summary>
/// <param name="strStoredProcedureName">存储过程</param>
/// <param name="sqlParm">存储过程参数数组</param>
/// <param name="dataSet">数据集合</param>
/// <param name="TableName">表名数组</param>
/// <returns></returns>
public static DataSet FillDataSet_PROC(string strStoredProcedureName, SqlParameter[] sqlParm)
{
try
{
DbCommand dbc = db.GetStoredProcCommand(strStoredProcedureName);
if (sqlParm != null)
{
//添加参数
dbc.Parameters.AddRange(sqlParm);
}
//执行存储过程返回数据集
return db.ExecuteDataSet(dbc);
}
catch
{
return null;
}
}
#endregion
#region ExcuteNonQuery_SQL
/// <summary>
/// 使用SQL语句返回数据集
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <returns></returns>
public static int ExcuteNonQuery_SQL(string strSQL, SqlParameter[] paramValues)
{
DbCommand dbc = db.CreateConnection().CreateCommand();
dbc.CommandText = strSQL;
if (paramValues != null)
{
dbc.Parameters.AddRange(paramValues);
}
int i = db.ExecuteNonQuery(dbc);
return i;
}
#endregion
#region ExcuteNonQuery_PRO
/// <summary>
/// 执行存储过程返回是否执行成功
/// </summary>
/// <param name="strProcedureName"></param>
/// <param name="sqlParm"></param>
/// <returns></returns>
public static bool ExcuteNonQuery_PRO(string strProcedureName, SqlParameter[] sqlParm)
{
int i = 0;
DbCommand dbc = db.GetStoredProcCommand(strProcedureName);
if (sqlParm != null)
{
dbc.Parameters.AddRange(sqlParm);
}
i = db.ExecuteNonQuery(dbc);
return true;
}
#endregion
#region ExecuteScale
/// <summary>
/// 执行存储过程返回第一行,第一列的值
/// </summary>
/// <param name="strName"></param>
/// <returns></returns>
public static object ExecuteScale(string strName, SqlParameter[] param)
{
DbCommand dbc = db.GetStoredProcCommand(strName);
if (param != null)
{
dbc.Parameters.AddRange(param);
}
return db.ExecuteScalar(dbc);
}
#endregion
}
#endregion
}