亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? database.cs

?? 詳細講述了數據庫編程
?? CS
字號:
#define DEBUG

using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

using HRManager.DataAccessHelper;
using HRManager.CommonComponent;

namespace HRManager.DataAccessLayer
{
	/// <summary>
	/// 類,用于數據訪問的類。
	/// </summary>
	public class Database : IDisposable 
	{
		/// <summary>
		/// 保護變量,數據庫連接。
		/// </summary>
		protected SqlConnection Connection;

		/// <summary>
		/// 保護變量,數據庫連接串。
		/// </summary>
		protected String ConnectionString;
		
		/// <summary>
		/// 構造函數。
		/// </summary>
		/// <param name="DatabaseConnectionString">數據庫連接串</param>
		public Database()
		{
			ConnectionString = ConfigurationManager.AppSettings["DBConnectionString"];
		}

		/// <summary>
		/// 析構函數,釋放非托管資源
		/// </summary>
		~Database()
		{
			try
			{
				if (Connection != null)
					Connection.Close();
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug(e.Message);
			}
			try
			{
				Dispose();
			}
			catch{}
		}

		/// <summary>
		/// 保護方法,打開數據庫連接。
		/// </summary>
		protected void Open() 
		{
			if (Connection == null)
			{
				try
				{
					Connection = new SqlConnection(ConnectionString);
				}
				catch(Exception e)
				{
                    myEventLog.Log.Debug(e.Message);
				}
			}
			if (Connection.State.Equals(ConnectionState.Closed))
			{
				try
				{
					Connection.Open();
				}
				catch(Exception e)
				{
                    myEventLog.Log.Debug(e.Message);
				}
			}
		}

		/// <summary>
		/// 公有方法,關閉數據庫連接。
		/// </summary>
		public void Close() 
		{
			try
			{
				if (Connection != null)
					Connection.Close();
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug(e.Message);
			}
		}

		/// <summary>
		/// 公有方法,釋放資源。
		/// </summary>
		public void Dispose() 
		{
			// 確保連接被關閉
			try
			{
			if (Connection != null) 
			{
				Connection.Dispose();
				Connection = null;
			}	
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug(e.Message);
			}
		}

		/// <summary>
		/// 公有方法,獲取數據,返回一個SqlDataReader (調用后主意調用SqlDataReader.Close())。
		/// </summary>
		/// <param name="SqlString">Sql語句</param>
		/// <returns>SqlDataReader</returns>
		public SqlDataReader GetDataReader(String SqlString)
		{
			Open();
			try
			{
				SqlCommand cmd = new SqlCommand(SqlString,Connection);
				return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
#if DEBUG
                myEventLog.Log.Info(SqlString);
#endif
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug("數據查詢(GetDataReader)失敗,SqlString=" + SqlString + ",系統異常信息:" + e.Message);
				return null;
			}
		}

		/// <summary>
		/// 公有方法,獲取數據,返回一個DataSet。
		/// </summary>
		/// <param name="SqlString">Sql語句</param>
		/// <returns>DataSet</returns>
		public DataSet GetDataSet(String SqlString)
		{
			DataSet dataset = new DataSet();
			Open();
			try
			{
				SqlDataAdapter adapter = new SqlDataAdapter(SqlString,Connection);
				adapter.Fill(dataset);
#if DEBUG
                myEventLog.Log.Info(SqlString);
#endif
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug("數據查詢(GetDataSet)失敗,SqlString=" + SqlString + ",系統異常信息:" + e.Message);
			}
			finally
			{
				Close();
			}
			return dataset;
		}

		/// <summary>
		/// 公有方法,獲取數據,返回一個DataTable。
		/// </summary>
		/// <param name="SqlString">Sql語句</param>
		/// <returns>DataTable</returns>
		public DataTable GetDataTable(String SqlString)
		{
			DataSet dataset = GetDataSet(SqlString);
			dataset.CaseSensitive = false;
			return dataset.Tables[0];
		}

		/// <summary>
		/// 公有方法,獲取數據,返回一個DataRow。
		/// </summary>
		/// <param name="SqlString">Sql語句</param>
		/// <returns>DataRow</returns>
		public DataRow GetDataRow(String SqlString)
		{
			DataSet dataset = GetDataSet(SqlString);
			dataset.CaseSensitive = false;
			if (dataset.Tables[0].Rows.Count>0)
			{
				return dataset.Tables[0].Rows[0];
			}
			else
			{
				return null;
			}
		}

		/// <summary>
		/// 公有方法,執行Sql語句。
		/// </summary>
		/// <param name="SqlString">Sql語句</param>
		/// <returns>對Update、Insert、Delete為影響到的行數,其他情況為-1</returns>
		public int ExecuteSQL(String SqlString)
		{
			int count = -1;
			Open();
			try
			{
				SqlCommand cmd = new SqlCommand(SqlString,Connection);
				count = cmd.ExecuteNonQuery();
#if DEBUG
                myEventLog.Log.Info(SqlString);
#endif
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug("執行數據操作(ExecuteSQL)失敗,SqlString=" + SqlString + ",系統異常信息:" + e.Message);
				count = -1;
			}
			finally
			{
				Close();
			}
			return count;
		}

		/// <summary>
		/// 公有方法,執行一組Sql語句。
		/// </summary>
		/// <param name="SqlStrings">Sql語句組</param>
		/// <returns>是否成功</returns>
		public bool ExecuteSQL(String[] SqlStrings)
		{
			bool success = true;
			Open();
			SqlCommand cmd = new SqlCommand();
			SqlTransaction trans = Connection.BeginTransaction();
			cmd.Connection = Connection;
			cmd.Transaction = trans;

			int i=0;
			try
			{
				foreach (String str in SqlStrings)
				{
					cmd.CommandText = str;
					cmd.ExecuteNonQuery();
					i++;
#if DEBUG
                    myEventLog.Log.Info(str);
#endif
				}
				trans.Commit();
			}
			catch(Exception e)
			{
                myEventLog.Log.Debug("執行數據操作(ExecuteSQL)失敗,SqlString=" + SqlStrings[i] + ",系統異常信息:" + e.Message);
				success = false;
				trans.Rollback();
			}
			finally
			{
				Close();
			}
			return success;
		}

		/// <summary>
		/// 公有方法,在一個數據表中插入一條記錄。
		/// </summary>
		/// <param name="TableName">表名</param>
		/// <param name="Cols">哈西表,鍵值為字段名,值為字段值</param>
		/// <returns>是否成功</returns>
		public bool Insert(String TableName,Hashtable Cols)
		{
			int Count = 0;

			if (Cols.Count<=0)			
			{
				return true;
			}

			String Fields = " (";
			String Values = " Values(";			
			foreach(DictionaryEntry item in Cols)
			{
				if (Count!=0)
				{
					Fields += ",";
					Values += ",";
				}
				Fields += "["+item.Key.ToString()+"]";
				Values += item.Value.ToString();
				Count ++;
			}
			Fields += ")";
			Values += ")";

			String SqlString = "Insert into "+TableName+Fields+Values;

			String[] Sqls = {SqlString};
			return ExecuteSQL(Sqls);
		}

	
		/// <summary>
		/// 公有方法,更新一個數據表。
		/// </summary>
		/// <param name="TableName">表名</param>
		/// <param name="Cols">哈西表,鍵值為字段名,值為字段值</param>
		/// <param name="Where">Where子句</param>
		/// <returns>是否成功</returns>
		public bool Update(String TableName,Hashtable Cols,String Where)
		{
			int Count = 0;
			if (Cols.Count<=0)			
			{
				return true;
			}
			String Fields = " ";
			foreach(DictionaryEntry item in Cols)
			{
				if (Count!=0)
				{
					Fields += ",";
				}
				Fields += "["+item.Key.ToString()+"]";
				Fields += "=";
				Fields += item.Value.ToString();
				Count ++;
			}
			Fields += " ";

			String SqlString = "Update "+TableName+" Set "+Fields+Where;

			String[] Sqls = {SqlString};
			return ExecuteSQL(Sqls);
		}		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃av一区二区| 91精品国产综合久久香蕉麻豆| 色综合久久99| 欧美精品一区二区三区在线播放| 中文字幕在线不卡视频| 青娱乐精品在线视频| 99视频国产精品| 日韩欧美一级二级三级久久久| 最新中文字幕一区二区三区| 欧美aa在线视频| 欧美私模裸体表演在线观看| 国产日韩精品久久久| 美女久久久精品| 欧美电影在线免费观看| 亚洲精品免费在线| 成人美女视频在线观看18| 日韩欧美成人午夜| 日本系列欧美系列| 一本在线高清不卡dvd| 久久精品夜色噜噜亚洲a∨| 蜜桃久久精品一区二区| 欧美精品日韩精品| 亚洲一区二区成人在线观看| 暴力调教一区二区三区| 国产日韩欧美麻豆| 国产在线乱码一区二区三区| 欧美成人a∨高清免费观看| 视频一区二区三区在线| 欧美午夜电影一区| 亚洲一区二区在线观看视频| 91免费精品国自产拍在线不卡| 亚洲国产激情av| 成人av网址在线| 国产精品欧美经典| 99久久精品一区二区| 国产精品美女久久久久久久网站| 国产传媒久久文化传媒| 欧美国产亚洲另类动漫| 国产成人av电影在线播放| 国产精品三级av| 色悠久久久久综合欧美99| 亚洲免费资源在线播放| 欧美色视频一区| 无吗不卡中文字幕| 日韩欧美一区在线观看| 毛片一区二区三区| 久久综合成人精品亚洲另类欧美| 国产成人在线免费| 亚洲激情第一区| 欧美日韩久久不卡| 久久69国产一区二区蜜臀| 久久精品视频在线免费观看| 成人一区在线观看| 一区二区三区不卡视频在线观看| 欧美日韩国产美| 九一久久久久久| 国产精品国产精品国产专区不片| 91丨国产丨九色丨pron| 日韩中文字幕麻豆| 久久久精品人体av艺术| 日本电影欧美片| 麻豆精品国产91久久久久久| 久久久精品蜜桃| 欧美三区在线视频| 久久成人免费日本黄色| 中文字幕一区视频| 91精品欧美福利在线观看| 国产一区二区精品久久| 一区二区三区小说| 精品成人佐山爱一区二区| 99久久综合99久久综合网站| 亚洲成人午夜电影| 亚洲国产精品传媒在线观看| 91国偷自产一区二区开放时间 | 蜜臀99久久精品久久久久久软件| www国产成人| 91久久精品国产91性色tv| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲欧洲www| 精品不卡在线视频| 欧美亚洲国产bt| 丁香婷婷综合网| 日本欧美在线观看| 一区2区3区在线看| 久久精品水蜜桃av综合天堂| 91精品国产综合久久精品麻豆| 国产91精品一区二区| 人人精品人人爱| 亚洲最新在线观看| 中文字幕制服丝袜成人av | 久久毛片高清国产| 欧美三级电影网| 99这里都是精品| 精品写真视频在线观看| 亚洲成人动漫在线观看| 中文一区二区在线观看| 2019国产精品| 欧美一区二区三区四区高清| 色乱码一区二区三区88| 成人精品免费看| 国产一区二区久久| 国产综合色产在线精品| 视频一区欧美精品| 天堂av在线一区| 亚洲制服丝袜一区| 亚洲天堂免费在线观看视频| 国产精品免费免费| 日本一区二区三级电影在线观看| 欧美成人video| 亚洲精品一区二区三区影院| 日韩一区二区三区四区| 欧美顶级少妇做爰| 91.麻豆视频| 日韩女优毛片在线| 亚洲精品在线三区| 久久一区二区三区四区| 欧美精品一区二区三区蜜桃| 欧美不卡一区二区三区四区| 日韩精品一区在线| 欧美tk—视频vk| 久久久91精品国产一区二区精品| 精品国产一区二区三区四区四| 国产午夜精品福利| 国产精品国产三级国产aⅴ中文| 欧美激情中文字幕一区二区| 亚洲国产电影在线观看| 中文字幕欧美三区| 亚洲三级在线观看| 亚洲免费在线观看| 午夜欧美2019年伦理| 五月激情综合婷婷| 久久福利资源站| 国产一区二区在线免费观看| 激情另类小说区图片区视频区| 九一九一国产精品| 不卡的电影网站| 91久久精品午夜一区二区| 欧美亚洲高清一区| 欧美一区二区免费视频| 日韩欧美www| 国产精品视频观看| 一区二区激情视频| 免费观看一级特黄欧美大片| 国产一区二区在线影院| 91小视频在线观看| 欧美日韩高清一区| 久久午夜羞羞影院免费观看| 国产日产欧美精品一区二区三区| 最近日韩中文字幕| 无码av免费一区二区三区试看| 国产在线播精品第三| 色哟哟精品一区| 精品国产一二三区| 亚洲国产精品av| 亚洲成人免费视频| 国产精品自拍一区| 91片在线免费观看| 精品国产免费一区二区三区四区| 国产欧美视频在线观看| 一区二区三区日韩在线观看| 日韩电影在线观看网站| 国产剧情一区在线| 色婷婷国产精品综合在线观看| 欧美精品乱码久久久久久按摩 | 国产一区 二区 三区一级| 91丝袜高跟美女视频| 久久久久亚洲综合| 亚洲高清视频在线| 国产精品一级片| 日韩一卡二卡三卡四卡| 国产精品电影院| 国产精品一区二区久久精品爱涩| 日本久久电影网| 国产亚洲视频系列| 日韩国产一区二| 一本一道综合狠狠老| 国产精品色哟哟| 国产一区二区三区免费观看| 欧美影院一区二区| 中文字幕亚洲综合久久菠萝蜜| 久久国产尿小便嘘嘘| 欧美日韩一二三区| 亚洲图片欧美综合| 91国产精品成人| 国产精品视频一二| 国产精品一区二区久久精品爱涩| 日韩午夜精品视频| 亚洲观看高清完整版在线观看| 91久久精品一区二区三区| 亚洲欧美在线另类| 丁香啪啪综合成人亚洲小说| 欧美精品一区二| 久久不见久久见免费视频7 | 成人国产亚洲欧美成人综合网| 日韩欧美一级二级三级久久久| 午夜精品久久久久久久99水蜜桃| 欧美日韩在线直播| 亚洲成人你懂的| 日韩亚洲电影在线| 精品中文字幕一区二区|