⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataaccessobject.cs

📁 实现数据库中实体到类的动态映射,通过映射可方便的实现数据库记录的增删改查等操作.
💻 CS
字号:
using System;
using System.Data;

namespace EntityMapping
{
	/// <summary>
	/// DataAccessObject 的摘要说明。
	/// </summary>
	public class DataAccessObject
	{
		private EntityMapping.DataType m_dbType;
		private System.Data.IDbDataAdapter m_DataAp;
		private System.Data.IDbConnection m_DBCon;
		private System.Data.IDbCommand m_DBCom;
		private System.Data.DataSet m_Ds = new DataSet();

		private string m_str_Con ;


		public EntityMapping.DataType DBType
		{
			get 
			{
				return this.m_dbType;
			}
		}
		/// <summary>
		/// 设置数据类别
		/// </summary>
		/// <param name="dbType">数据库的类别</param>
		public DataAccessObject(DataType dbType)
		{
			this.m_dbType = dbType;
			if(this.m_dbType == DataType.Oracle)
			{
				
			}
			//if(this.m_dbType = )
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		/// <summary>
		/// 设置数据访问对象的数据库类别以及链接字符串
		/// </summary>
		/// <param name="dbType"></param>
		/// <param name="str_Con"></param>
		public DataAccessObject(DataType dbType,string str_Con)
		{
			this.m_str_Con = str_Con;
			this.m_dbType = dbType;
			EntityMapping.IDataAccess dataAccess = new OracleFactory();
			if(this.m_dbType == DataType.Oracle)
			{
				dataAccess = new OracleFactory();
			}
			this.m_DBCon = dataAccess.GetConnection();
			this.m_DBCon.ConnectionString = str_Con;
			this.m_DBCom = dataAccess.GetCommand();
			this.m_DataAp = dataAccess.GetDataAdapter();

		}
		
		/// <summary>
		/// 执行SQL语句
		/// </summary>
		/// <param name="Sql">要执行的SQL语句</param>
		/// <returns>返回受影响记录的条数</returns>
		public int ExcuteBySql(string Sql)
		{
			try
			{
				if(this.m_DBCon.State == System.Data.ConnectionState.Closed)
				{
					this.m_DBCon.Open();
				}
				this.m_DBCom.Connection = this.m_DBCon;
				this.m_DBCom.CommandText = Sql;
				int i = this.m_DBCom.ExecuteNonQuery();
				if(this.m_DBCon.State == System.Data.ConnectionState.Open)
				{
					this.m_DBCon.Close();
				}
				return i;
			}
			catch(Exception exp)
			{
				throw new Exception(exp.ToString());
				this.m_DBCon.Close();
			}
		}

		/// <summary>
		/// 打开一个链接对象
		/// </summary>
		/// <returns>返回链接对象的当前状态</returns>
		public string Open()
		{
			try
			{
				this.m_DBCon.ConnectionString = this.m_str_Con;
				this.m_DBCon.Open();
				return this.m_DBCon.State.ToString();

			}
			catch
			{
				return this.m_DBCon.State.ToString();
	
			}
		}

		/// <summary>
		/// 关闭链接对象
		/// </summary>
		/// <returns>返回链接对象的当前状态</returns>
		public string Close()
		{
			try
			{
				this.m_DBCon.Close();
				return this.m_DBCon.State.ToString();
			}
			catch
			{
				return this.m_DBCon.State.ToString();
			}

		}

		/// <summary>
		/// 根据SQL语句查询数据
		/// </summary>
		/// <param name="Sql">SQL查询语句</param>
		/// <returns>返回包含查询结果的数据集对象</returns>
		public DataSet QueryBySql(string Sql)
		{
			if(this.m_DBCon.State == System.Data.ConnectionState.Closed)
			{
				this.m_DBCon.Open();
			}
			this.m_DBCom.Connection = this.m_DBCon;
			this.m_DBCom.CommandText = Sql;
			//System.Data.SqlClient.SqlDataAdapter s = new System.Data.SqlClient.SqlDataAdapter();
			
			this.m_DataAp.SelectCommand = this.m_DBCom;
			this.m_DataAp.Fill(this.m_Ds);
			this.m_DBCon.Close();
			return this.m_Ds;
		}

		 ~DataAccessObject()
		{
			if(this.m_DBCon.State == System.Data.ConnectionState.Open)
			{
				this.m_DBCon.Close();
			}
		}
	}
}

⌨️ 快捷键说明

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