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

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

?? database.cs

?? 網上書店系統
?? CS
字號:
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

using eBookShop.CCL;

namespace eBookShop.DAL
{
    /// <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.ConnectionStrings["DBConnectionString"].ToString();
        }

        /// <summary>
        /// 析構函數,釋放非托管資源
        /// </summary>
        ~Database()
        {
            try
            {
                if (Connection != null)
                    Connection.Close();
            }
            catch (Exception ex)
            {
                Logger.Log.Error("數據庫鏈接錯誤:", ex);
            }
            try
            {
                Dispose();
            }
            catch { }
        }

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

        /// <summary>
        /// 公有方法,關閉數據庫連接。
        /// </summary>
        public void Close()
        {
            if (Connection != null)
                Connection.Close();
        }

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

        /// <summary>
        /// 公有方法,獲取數據,返回一個SqlDataReader (調用后主意調用SqlDataReader.Close())。
        /// </summary>
        /// <param name="SqlString">Sql語句</param>
        /// <returns>SqlDataReader</returns>
        public SqlDataReader GetDataReader(String SqlString)
        {
            Open();
            SqlCommand cmd = new SqlCommand(SqlString, Connection);
            SqlDataReader dataReader = null;
            try
            {
                dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            }
            catch (Exception ex)
            {
                Logger.Log.Error("GetDataReader錯誤:", ex);
            }
            return dataReader;
        }

        /// <summary>
        /// 公有方法,獲取數據,返回一個DataSet。
        /// </summary>
        /// <param name="SqlString">Sql語句</param>
        /// <returns>DataSet</returns>
        public DataSet GetDataSet(String SqlString)
        {
            Open();
            DataSet dataset = new DataSet();
            try
            {
                SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
                adapter.Fill(dataset);
                Close();
            }
            catch (Exception ex)
            {
                Logger.Log.Error("GetDataSet錯誤:", ex);
            }
            return dataset;
        }

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

        /// <summary>
        /// 公有方法,獲取數據,返回一個DataRow。
        /// </summary>
        /// <param name="SqlString">Sql語句</param>
        /// <returns>DataRow</returns>
        public DataRow GetDataRow(String SqlString)
        {
            DataTable dt = GetDataTable(SqlString);
            if (dt.Rows.Count > 0)
                return dt.Rows[0];
            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();
            }
            catch (Exception ex)
            {
                Logger.Log.Error("ExecuteSQL錯誤:", ex);
                count = -1;
            }
            finally
            {
                Close();
            }
            return count;
        }

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

            if (Cols.Count <= 0)
                return -1;

            String Fields = " (";
            String Values = " Values(";
            foreach (DictionaryEntry item in Cols)
            {
                if (Count != 0)
                {
                    Fields += ",";
                    Values += ",";
                }
                Fields += "[" + item.Key.ToString() + "]";
                string dataType = item.Value.GetType().Name;
                if (dataType == "String" || dataType == "DateTime")
                    Values += SqlStringConstructor.GetQuotedString(item.Value.ToString());
                else
                    Values += item.Value.ToString();
                Count++;
            }
            Fields += ")";
            Values += ")";

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

            return ExecuteSQL(SqlString);
        }

        /// <summary>
        /// 公有方法,更新一個數據表。
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <param name="Cols">哈西表,鍵值為字段名,值為字段值</param>
        /// <param name="Where">Where子句</param>
        /// <returns>修改行數</returns>
        public int Update(String TableName, Hashtable Cols, String Where)
        {
            int Count = 0;
            if (Cols.Count <= 0)
                return -1;

            String Fields = " ";
            foreach (DictionaryEntry item in Cols)
            {
                if (Count != 0)
                {
                    Fields += ",";
                }
                Fields += "[" + item.Key.ToString() + "]";
                Fields += "=";
                string dataType = item.Value.GetType().Name;
                if (dataType == "String" || dataType == "DateTime")
                    Fields += SqlStringConstructor.GetQuotedString(item.Value.ToString());
                else
                    Fields += item.Value.ToString();
                Count++;
            }
            Fields += " ";

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

            return ExecuteSQL(SqlString);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜a∨在线一区二区三区不卡| 欧美精品视频www在线观看 | 樱花影视一区二区| 蜜臀av一区二区在线观看| 中文成人综合网| 国产色婷婷亚洲99精品小说| 91麻豆精品久久久久蜜臀| 色国产综合视频| 色婷婷香蕉在线一区二区| 国产99久久久久久免费看农村| 美女看a上一区| 蜜桃视频在线观看一区| 精品午夜久久福利影院| 中文字幕欧美日本乱码一线二线| 青青草国产成人av片免费| 一区二区三区在线视频播放| 成人av资源下载| 日韩精品福利网| 精品国产乱码久久久久久闺蜜| 色94色欧美sute亚洲线路二| 亚洲国产精品影院| 日韩精品一区二| 91福利在线看| 懂色av一区二区夜夜嗨| 久久精品国产精品亚洲综合| 亚洲风情在线资源站| 亚洲天堂免费看| 中文字幕乱码一区二区免费| 在线一区二区三区| 91亚洲永久精品| 国产大片一区二区| 日本系列欧美系列| 亚洲国产毛片aaaaa无费看| 日韩精品亚洲一区二区三区免费| 欧美午夜视频网站| 欧美日韩精品一区二区三区 | 色av成人天堂桃色av| 欧美电影免费观看高清完整版在线观看| 久久精品综合网| 欧美激情一二三区| 成人一区在线观看| 欧美老年两性高潮| 色综合久久中文综合久久牛| 国产精品三级久久久久三级| 成人午夜激情影院| 国产精品日韩精品欧美在线| 91天堂素人约啪| 亚洲电影你懂得| 欧美一级在线免费| 亚洲国产精品一区二区久久恐怖片 | 亚洲午夜久久久久中文字幕久| 久久亚洲二区三区| 91精品1区2区| 欧美男生操女生| 国产欧美精品一区aⅴ影院| 国产精品天干天干在线综合| 中文字幕视频一区| 婷婷国产v国产偷v亚洲高清| 国产综合色在线| 欧美日本乱大交xxxxx| 日韩三区在线观看| 日韩毛片在线免费观看| 亚洲欧美视频在线观看| 亚洲欧洲三级电影| 日韩国产欧美在线播放| 粉嫩一区二区三区性色av| 色视频成人在线观看免| 精品国产91乱码一区二区三区| 国产亚洲欧洲一区高清在线观看| 国产精品视频一二| 国产精品一区2区| 91国偷自产一区二区使用方法| 亚洲高清中文字幕| 91麻豆.com| 国产美女一区二区三区| 99久久婷婷国产精品综合| 在线播放中文一区| 亚洲国产精品久久人人爱| 国产精品女同一区二区三区| 在线观看网站黄不卡| 日韩欧美电影一二三| 97aⅴ精品视频一二三区| 三级精品在线观看| 亚洲欧洲韩国日本视频| 日韩免费高清视频| 欧美中文字幕一区二区三区 | 久久99深爱久久99精品| 5月丁香婷婷综合| 日本亚洲免费观看| 高清不卡一二三区| 欧美成人女星排行榜| 亚洲sss视频在线视频| 高清国产一区二区| 国产精品系列在线| 日本精品一区二区三区高清 | 成人免费va视频| 一区在线观看免费| 91美女在线视频| 日韩av网站在线观看| 日韩欧美久久一区| 成人免费视频国产在线观看| 亚洲欧美一区二区在线观看| 精品污污网站免费看| 毛片一区二区三区| 久久久久久久久免费| 日本韩国欧美在线| 久久精品999| 亚洲一二三区视频在线观看| 日韩欧美中文字幕一区| 欧美日韩国产一二三| 国产.欧美.日韩| 成人精品亚洲人成在线| 久久久久久久久免费| 美国欧美日韩国产在线播放 | 成人av资源站| 97精品国产露脸对白| 91精品欧美一区二区三区综合在| 亚洲私人影院在线观看| 欧美日韩综合在线| 91黄色激情网站| 一本大道av伊人久久综合| 91女人视频在线观看| 色综合一个色综合亚洲| 色婷婷国产精品综合在线观看| 91丨porny丨国产| 在线观看欧美黄色| proumb性欧美在线观看| 成人午夜av电影| 国产一区二区美女诱惑| 免费观看一级欧美片| 午夜不卡在线视频| 亚洲午夜电影在线| 亚洲乱码精品一二三四区日韩在线| 久久免费看少妇高潮| 欧美亚洲综合一区| 91成人在线精品| 欧美一区二区三区四区久久| 欧美精选在线播放| 欧美色综合影院| 欧美日韩精品一区二区天天拍小说| 在线一区二区三区做爰视频网站| 成人av片在线观看| 成人一区二区三区| 色偷偷久久人人79超碰人人澡| 色综合天天综合色综合av| 91蝌蚪porny| 在线视频欧美区| 26uuu久久综合| 国产精品美女久久久久久| 最新不卡av在线| 亚洲成av人片一区二区三区| 久久97超碰国产精品超碰| 丰满少妇在线播放bd日韩电影| 国产福利精品一区二区| 色天天综合久久久久综合片| 2024国产精品| 美女视频黄a大片欧美| 欧美美女黄视频| 欧美一区二区黄| 国产欧美一区二区在线| 久久影视一区二区| 日本午夜精品一区二区三区电影 | 一二三区精品视频| 国产日韩欧美不卡| 日韩午夜在线播放| 亚洲精品免费播放| 激情综合色播五月| 91福利视频网站| 欧美国产日韩a欧美在线观看| 日韩国产精品久久久久久亚洲| 国产成人av一区二区| 欧美一区二区视频在线观看2022| 国产精品久久毛片av大全日韩| 蜜臀av性久久久久av蜜臀妖精| 不卡av免费在线观看| 日韩欧美国产高清| 亚洲一区二区三区四区五区中文| 成人app软件下载大全免费| 日韩女优电影在线观看| 欧美天天综合网| 中文字幕在线视频一区| 精品亚洲成a人| 久久影院电视剧免费观看| 国产一区二区三区久久久| 91精品国产全国免费观看| 亚洲午夜国产一区99re久久| 欧美日韩国产高清一区二区三区| 亚洲二区在线视频| 在线电影院国产精品| 爽好久久久欧美精品| 制服丝袜亚洲精品中文字幕| 奇米精品一区二区三区在线观看| 7777女厕盗摄久久久| 麻豆精品蜜桃视频网站| 国产亚洲欧美一级| 日本乱人伦aⅴ精品| 日本在线不卡视频一二三区| 26uuu色噜噜精品一区二区| 国产成人aaa| 日韩国产在线观看一区|