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

📄 dbconnection.cs

📁 一个导数程序,oracle导入到sql中。简单不知道能不能用
💻 CS
字号:
using System;
using System.Data;
using System.Collections;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Configuration;
using System.Xml;

namespace BxDataExport
{
	//数据库类型
	public enum eDbType {DB_SQL_SERVER = 1, DB_OLE_DB};
	/// <summary>
	/// CDbManager 支持SQL数据库与其他OleDB的支持的数据库,对于SQL数据库则以
	/// SQL Client的方式连接,以提高效率,其他则以OldDB的方式连接。
	/// </summary>
	public sealed class DbConnection	//不允许继承
	{
		
		
	
		
		#region	构造/析构函数
		/// <summary>
		/// 构造函数
		/// </summary>
		public DbConnection(){
			
		
		}
		#endregion

		//默认情况为MS SQL数据库
		private eDbType _DbType = eDbType.DB_SQL_SERVER;
		//private eDbType _DbType = eDbType.DB_OLE_DB;
		public eDbType DbType
		{
			get {return _DbType;}
			set {_DbType = value;}
		}

		private  string _ConnectionString;				//连接字符串

		public  string ConnectionString
		{
			get{return _ConnectionString;}
			set{_ConnectionString = value;}
		}

		private	IDbDataAdapter Adapter = null;                  //数据库控制集
		private IDbConnection Connection = null;				//数据库连接
		private IDbTransaction Transaction = null;				//数据库事务
		private IDbCommand	Command = null;						//SQL语句命令
		private IDataReader	DataReader = null;					//数据集

//		public static CDbManager Manager = new CDbManager();			//管理器
		//private SystemException DbException = null;

//		public CDbManager DbManager
//		{get{return Manager;}}

		public IDbConnection Dbconnection
		{
			get{return Connection;}
			set{Connection = value;}
		}

		public IDbTransaction DbTransaction
		{
			get{return Transaction;}
			set{Transaction = value;}
		}

		public IDbCommand DbCommand
		{get{return Command;}}

		public IDbDataAdapter DbAdapter
		{get{return Adapter;}}

		public IDataReader DbDataReader
		{get{return DataReader;}}

		
		
		#region 取得当前程序的数据库连接
		public static string getDBConnStr()
		{
			return ConfigurationSettings.AppSettings["ConnectionString"].ToString();
		}
		#endregion
		public static string getDataAccessStr(string nodeName,string attributeName)
		{
			return ConfigurationSettings.AppSettings[attributeName].ToString();
		}

		#region		事务处理
		public void BeginTransaction()		//开始事务
		{
			if(Connection != null)
				if(Transaction == null)
					Transaction = Connection.BeginTransaction();
		}
		public void Commit()				//提交事务
		{
			if(Transaction != null)
			{
				Transaction.Commit();
				Transaction = null;
			}
		}
		public void Rollback()				//回滚事务
		{
			if(Transaction != null)
			{
				Transaction.Rollback();
				Transaction = null;
			}
		}
		#endregion

		#region		数据库操作
		#region		打开数据库连接
		public void OpenConnection()		//打开数据库连接
		{
			if(Connection == null)
			{
				switch(_DbType)
				{
					case eDbType.DB_SQL_SERVER:
						Connection = new SqlConnection(ConnectionString);
						break;
					case eDbType.DB_OLE_DB:
						Connection = new OleDbConnection(ConnectionString);
						break;
					default:
						throw new SystemException("数据库类型未指定!");
				}
			}
			//打开连接
			if(Connection.State != ConnectionState.Open)
			{
				//Connection.ConnectionTimeout = 60;
				Connection.Open();
			}
		}
		#endregion

		#region		关闭数据库连接
		public void CloseConnection()		//关闭数据库连接
		{
			
			//关闭命令
			if(DataReader != null)
				DataReader = null;
			//关闭命令
			if(Command != null)
				Command = null;

			//关闭事务
			if(Transaction != null)
				Transaction = null;

			//关闭数据库连接
			if(Connection != null)
			{
				//仍处于连接状态则关闭数据库连接
				if(Connection.State == ConnectionState.Open)
				{
					Connection.Close();
					Connection = null;
				}
			}
		}
		#endregion

		#region		构造SQL语句
		public void OpenCommand(string cmdText)
		{
			if(Connection == null)
				OpenConnection();

			
			if(Command != null)
			{
				if(Connection != null)
					Command.CommandText = cmdText;

				//事务
				if(Transaction != null && Command.Transaction == null)
					Command.Transaction = Transaction;
			}
			else
			{
				if(Connection != null)
				{
					switch(_DbType)
					{
						case eDbType.DB_SQL_SERVER:
							SqlConnection SqlDbConn = (SqlConnection)Connection;
							if(SqlDbConn != null)
								Command = new SqlCommand(cmdText, SqlDbConn);
							break;
						case eDbType.DB_OLE_DB:
							OleDbConnection OleDbConn = (OleDbConnection)Connection;
							if(OleDbConn != null)
								Command = new OleDbCommand(cmdText, OleDbConn);
							break;
						default:
							throw new SystemException("数据库类型未指定!");
					}

					//事务
					if(Transaction != null)
						Command.Transaction = Transaction;
				}
			}
		}
        #endregion

		#region		执行更新SQL语句
		public int ExecuteNonQuery()
		{
			if(Command != null)
			{
				Command.CommandTimeout = 0;
				return Command.ExecuteNonQuery();
			}
			else
			{return 0;}
		}
		#endregion

		#region		构造Adapter语句
		public void OpenAdapter(string cmdText)
		{
			Adapter = null;

			if(Connection == null)
				OpenConnection();


			if(Adapter == null)
			{
				if(Connection != null)
				{
					switch(_DbType)
					{
						case eDbType.DB_SQL_SERVER:
							SqlConnection SqlDbConn = (SqlConnection)Connection;
							if(SqlDbConn != null)
								Adapter = new SqlDataAdapter(cmdText, SqlDbConn);
							break;
						case eDbType.DB_OLE_DB:
							OleDbConnection OleDbConn = (OleDbConnection)Connection;
							if(OleDbConn != null)
								Adapter = new OleDbDataAdapter(cmdText, OleDbConn);
							break;
						default:
							throw new SystemException("数据库类型未指定!");
					}
					
				}
			}
		}

        #endregion

	
        #region		构造DataReader
		public void ExecuteReader()
		{
			if(DataReader != null)
			{
				DataReader.Close();
				DataReader = null;
			}

			if(Command != null)
				DataReader = Command.ExecuteReader();
		}
		#endregion

		#region		执行DataReader
		public bool ReadDataReader()
		{
			if(DataReader != null)
				return DataReader.Read();
			else
				return false;
		}
		#endregion
/*
		#region 取DataReader记录条数
		public int ReaderCount()
		{
			int readerCount = 0;
			if(DataReader != null)
			{
				while(DataReader.Read())
				{
					readerCount++;
				}
				DataReader.
			}
		}
		#endregion
*/
		#region		取DataReader字段变量
		public object GetValue(string ValueTitle)
		{
			if(DataReader != null)
				return DataReader[ValueTitle];
			else
				return null;
		}
		#endregion

		#region		取字段值
		public object this[string title] 
		{
			get
			{
				if(DataReader == null)
					return null;
				else
					return DataReader[title];
			}
		}
		#endregion

		#region		取字段值
		public object this[int index] 
		{
			get
			{
				if(DataReader == null)
					return null;
				else
					return DataReader[index];
			}
		}
		#endregion

		#region		字段个数
		public int FieldCount
		{
			get
			{
				if(DataReader != null)
					return DataReader.FieldCount;
				else
					return 0;
			}
		}
		#endregion

		#region		关闭DataReader
		public void CloseDataReader()
		{
			if(DataReader != null)
			{
				DataReader.Close();
				DataReader = null;
			}
		}
		#endregion

		#endregion
	}
}

⌨️ 快捷键说明

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