customsqlhelper.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 322 行

CS
322
字号
/* 
 * CustomSQLHelper.cs @Microsoft Visual Studio 2008 <.NET Framework 3.5>
 * AfritXia
 * 2007-05-03
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Xml;

using NET.AfritXia.MyHome.Model.Message;

using NET.AfritXia.DBUtility;

namespace NET.AfritXia.MyHome.DBTask.Access2000
{
	/// <summary>
	/// 自定义查询帮助类
	/// </summary>
	internal class CustomSQLHelper
	{
		// 建立查询帮助类
		private static SQLHelper g_sqlHelper = null;

		#region 类 CustomSQLHelper 构造器
		/// <summary>
		/// 类 CustomSQLHelper 静态构造器
		/// </summary>
		static CustomSQLHelper()
		{
			lock (typeof(CustomSQLHelper))
			{
				SQLHelperFactory factory = null;
				
				// 创建 SQLHelper 工厂
				factory = new SQLHelperFactory();
				// 设置 ORM 字典供应者
				factory.OrmDictionaryProvider = new CustomOrmDictionaryProvider();

				g_sqlHelper = factory.Create();
			}
		}
		#endregion

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText, CommandType cmdType, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			if (oleDbConn == null)
				oleDbConn = ConnectionFactory.CreateConnection();

			return g_sqlHelper.ExecuteNoneQuery(cmdText, cmdType, dbParams, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteNoneQuery(cmdText, CommandType.Text, dbParams, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText, OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteNoneQuery(cmdText, CommandType.Text, null, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText, CommandType cmdType, OleDbParameter[] dbParams)
		{
			return ExecuteNoneQuery(cmdText, cmdType, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText, OleDbParameter[] dbParams)
		{
			return ExecuteNoneQuery(cmdText, CommandType.Text, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询,包括插入、更新、删除语句
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <returns>查询所影响的行数</returns>
		public static int ExecuteNoneQuery(string cmdText)
		{
			return ExecuteNoneQuery(cmdText, CommandType.Text, null, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText, CommandType cmdType, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			if (oleDbConn == null)
				oleDbConn = ConnectionFactory.CreateConnection();

			return g_sqlHelper.ExecuteReader(cmdText, cmdType, dbParams, oleDbConn, oleDbTran) as OleDbDataReader;
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteReader(cmdText, CommandType.Text, dbParams, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText, OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteReader(cmdText, CommandType.Text, null, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText, CommandType cmdType, OleDbParameter[] dbParams)
		{
			return ExecuteReader(cmdText, cmdType, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText, OleDbParameter[] dbParams)
		{
			return ExecuteReader(cmdText, CommandType.Text, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <returns>返回查询阅读器</returns>
		public static OleDbDataReader ExecuteReader(string cmdText)
		{
			return ExecuteReader(cmdText, CommandType.Text, null, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText, CommandType cmdType, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			if (oleDbConn == null)
				oleDbConn = ConnectionFactory.CreateConnection();

			return g_sqlHelper.ExecuteScalar(cmdText, cmdType, dbParams, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText, OleDbParameter[] dbParams,
			OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteScalar(cmdText, CommandType.Text, dbParams, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="oleDbConn">此次查询所使用的数据库联接</param>
		/// <param name="oleDbTran">此次查询所使用的数据库事务</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText, OleDbConnection oleDbConn, OleDbTransaction oleDbTran)
		{
			return ExecuteScalar(cmdText, CommandType.Text, null, oleDbConn, oleDbTran);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="cmdType">查询命令类型</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText, CommandType cmdType, OleDbParameter[] dbParams)
		{
			return ExecuteScalar(cmdText, cmdType, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <param name="dbParams">参数列表</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText, OleDbParameter[] dbParams)
		{
			return ExecuteScalar(cmdText, CommandType.Text, dbParams, null, null);
		}

		/// <summary>
		/// 执行 SQL 查询,返回查询结果的第一行的第一列,忽略其它行和列
		/// </summary>
		/// <param name="cmdText">查询命令</param>
		/// <returns></returns>
		public static object ExecuteScalar(string cmdText)
		{
			return ExecuteScalar(cmdText, CommandType.Text, null, null, null);
		}

		/// <summary>
		/// 从数据源中读取数据,并建立一个新的对象
		/// </summary>
		/// <typeparam name="T">对象类型模板</typeparam>
		/// <param name="dr">数据源</param>
		/// <returns></returns>
		public static T CreateObject<T>(OleDbDataReader dr)
		{
			return g_sqlHelper.CreateObject<T>(dr);
		}

		/// <summary>
		/// 从数据源中读取数据,并设置到对象属性
		/// </summary>
		/// <param name="obj">所要设置的对象实例</param>
		/// <param name="dr">数据源</param>
		public static void PutObjectProperties(object obj, OleDbDataReader dr)
		{
			g_sqlHelper.PutObjectProperties(obj, dr);
		}

		/// <summary>自定义字典供应者类</summary>
		private class CustomOrmDictionaryProvider : IOrmDictionaryProvider
		{
			#region IOrmDictionaryProvider 成员
			public XmlDocument GetXmlDictionary(Type type)
			{
				XmlDocument xmlDoc = new XmlDocument();

				if (type == typeof(LWord))
					xmlDoc.LoadXml(MyResources.LWordOrmDictionary);
				else if (type == typeof(Article))
					xmlDoc.LoadXml(MyResources.ArticleOrmDictionary);
				else if (type == typeof(Comment))
					xmlDoc.LoadXml(MyResources.CommentOrmDictionary);

				return xmlDoc;
			}
			#endregion
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?