亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

Access數據庫操作類

2024-09-07 19:05:01
字體:
來源:轉載
供稿:網友

access數據庫操作類accesshelper

using system;
using system.data;
using system.configuration;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.data.oledb;
using system.collections;
/// <summary>
/// accehelper 的摘要說明
/// </summary>
public static class accesshelper
{
    //數據庫連接字符串
    public static readonly string conn = "provider=microsoft.jet.oledb.4.0;data source=" + httpcontext.current.request.physicalapplicationpath + system.configuration.configurationmanager.connectionstrings["connectionstring"].connectionstring;
    // 用于緩存參數的hash表
    private static hashtable parmcache = hashtable.synchronized(new hashtable());
    /// <summary>
    ///  給定連接的數據庫用假設參數執行一個sql命令(不返回數據集)
    /// </summary>
    /// <param name="connectionstring">一個有效的連接字符串</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>執行命令所影響的行數</returns>
    public static int executenonquery(string connectionstring, string cmdtext, params oledbparameter[] commandparameters)
    {
        oledbcommand cmd = new oledbcommand();
        using (oledbconnection conn = new oledbconnection(connectionstring))
        {
            preparecommand(cmd, conn, null, cmdtext, commandparameters);
            int val = cmd.executenonquery();
            cmd.parameters.clear();
            return val;
        }
    }
    /// <summary>
    /// 用現有的數據庫連接執行一個sql命令(不返回數據集)
    /// </summary>
    /// <remarks>
    ///舉例: 
    ///  int result = executenonquery(connstring, "publishorders", new oledbparameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">一個現有的數據庫連接</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>執行命令所影響的行數</returns>
    public static int executenonquery(oledbconnection connection, string cmdtext, params oledbparameter[] commandparameters)
    {
        oledbcommand cmd = new oledbcommand();
        preparecommand(cmd, connection, null, cmdtext, commandparameters);
        int val = cmd.executenonquery();
        cmd.parameters.clear();
        return val;
    }
    /// <summary>
    ///使用現有的sql事務執行一個sql命令(不返回數據集)
    /// </summary>
    /// <remarks>
    ///舉例: 
    ///  int result = executenonquery(trans, "publishorders", new oledbparameter("@prodid", 24));
    /// </remarks>
    /// <param name="trans">一個現有的事務</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>執行命令所影響的行數</returns>
    public static int executenonquery(oledbtransaction trans, string cmdtext, params oledbparameter[] commandparameters)
    {
        oledbcommand cmd = new oledbcommand();
        preparecommand(cmd, trans.connection, trans, cmdtext, commandparameters);
        int val = cmd.executenonquery();
        cmd.parameters.clear();
        return val;
    }
    /// <summary>
    /// 用執行的數據庫連接執行一個返回數據集的sql命令
    /// </summary>
    /// <remarks>
    /// 舉例: 
    ///  oledbdatareader r = executereader(connstring, "publishorders", new oledbparameter("@prodid", 24));
    /// </remarks>
    /// <param name="connectionstring">一個有效的連接字符串</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>包含結果的讀取器</returns>
    public static oledbdatareader executereader(string connectionstring, string cmdtext, params oledbparameter[] commandparameters)
    {
        //創建一個sqlcommand對象
        oledbcommand cmd = new oledbcommand();
        //創建一個sqlconnection對象
        oledbconnection conn = new oledbconnection(connectionstring);
        //在這里我們用一個try/catch結構執行sql文本命令/存儲過程,因為如果這個方法產生一個異常我們要關閉連接,因為沒有讀取器存在,
        //因此commandbehaviour.closeconnection 就不會執行
        try
        {
            //調用 preparecommand 方法,對 sqlcommand 對象設置參數
            preparecommand(cmd, conn, null, cmdtext, commandparameters);
            //調用 sqlcommand  的 executereader 方法
            oledbdatareader reader = cmd.executereader(commandbehavior.closeconnection);
            //清除參數
            cmd.parameters.clear();
            return reader;
        }
        catch
        {
            //關閉連接,拋出異常
            conn.close();
            throw;
        }
    }
    /// <summary>
    /// 返回一個dataset數據集
    /// </summary>
    /// <param name="connectionstring">一個有效的連接字符串</param>
    /// <param name="cmdtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>包含結果的數據集</returns>
    public static dataset executedataset(string connectionstring, string cmdtext, params oledbparameter[] commandparameters)
    {
        //創建一個sqlcommand對象,并對其進行初始化
        oledbcommand cmd = new oledbcommand();
        using (oledbconnection conn = new oledbconnection(connectionstring))
        {
            preparecommand(cmd, conn, null, cmdtext, commandparameters);
            //創建sqldataadapter對象以及dataset
            oledbdataadapter da = new oledbdataadapter(cmd);
            dataset ds = new dataset();
            try
            {
                //填充ds
                da.fill(ds);
                // 清除cmd的參數集合
                cmd.parameters.clear();
                //返回ds
                return ds;
            }
            catch
            {
                //關閉連接,拋出異常
                conn.close();
                throw;
            }
        }
    }
    /// <summary>
    /// 用指定的數據庫連接字符串執行一個命令并返回一個數據集的第一列
    /// </summary>
    /// <remarks>
    ///例如: 
    ///  object obj = executescalar(connstring, "publishorders", new oledbparameter("@prodid", 24));
    /// </remarks>
    ///<param name="connectionstring">一個有效的連接字符串</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>用 convert.to{type}把類型轉換為想要的 </returns>
    public static object executescalar(string connectionstring, string cmdtext, params oledbparameter[] commandparameters)
    {
        oledbcommand cmd = new oledbcommand();
        using (oledbconnection connection = new oledbconnection(connectionstring))
        {
            preparecommand(cmd, connection, null, cmdtext, commandparameters);
            object val = cmd.executescalar();
            cmd.parameters.clear();
            return val;
        }
    }
    /// <summary>
    /// 用指定的數據庫連接執行一個命令并返回一個數據集的第一列
    /// </summary>
    /// <remarks>
    /// 例如: 
    ///  object obj = executescalar(connstring, "publishorders", new oledbparameter("@prodid", 24));
    /// </remarks>
    /// <param name="conn">一個存在的數據庫連接</param>
    /// <param name="commandtext">存儲過程名稱或者sql命令語句</param>
    /// <param name="commandparameters">執行命令所用參數的集合</param>
    /// <returns>用 convert.to{type}把類型轉換為想要的 </returns>
    public static object executescalar(oledbconnection connection, string cmdtext, params oledbparameter[] commandparameters)
    {
        oledbcommand cmd = new oledbcommand();
        preparecommand(cmd, connection, null, cmdtext, commandparameters);
        object val = cmd.executescalar();
        cmd.parameters.clear();
        return val;
    }
    /// <summary>
    /// 將參數集合添加到緩存
    /// </summary>
    /// <param name="cachekey">添加到緩存的變量</param>
    /// <param name="cmdparms">一個將要添加到緩存的sql參數集合</param>
    public static void cacheparameters(string cachekey, params oledbparameter[] commandparameters)
    {
        parmcache[cachekey] = commandparameters;
    }
    /// <summary>
    /// 找回緩存參數集合
    /// </summary>
    /// <param name="cachekey">用于找回參數的關鍵字</param>
    /// <returns>緩存的參數集合</returns>
    public static oledbparameter[] getcachedparameters(string cachekey)
    {
        oledbparameter[] cachedparms = (oledbparameter[])parmcache[cachekey];
        if (cachedparms == null)
            return null;
        oledbparameter[] clonedparms = new oledbparameter[cachedparms.length];
        for (int i = 0, j = cachedparms.length; i < j; i++)
            clonedparms =(oledbparameter[])((icloneable)cachedparms).clone();
        return clonedparms;
    }
    /// <summary>
    /// 準備執行一個命令
    /// </summary>
    /// <param name="cmd">sql命令</param>
    /// <param name="conn">sql連接</param>
    /// <param name="trans">sql事務</param>
    /// <param name="cmdtext">命令文本,例如:select * from products</param>
    /// <param name="cmdparms">執行命令的參數</param>
    private static void preparecommand(oledbcommand cmd, oledbconnection conn, oledbtransaction trans, string cmdtext, oledbparameter[] cmdparms)
    {
        //判斷連接的狀態。如果是關閉狀態,則打開
        if (conn.state != connectionstate.open)
            conn.open();
        //cmd屬性賦值
        cmd.connection = conn;
        cmd.commandtext = cmdtext;
        //是否需要用到事務處理
        if (trans != null)
            cmd.transaction = trans;
        cmd.commandtype = commandtype.text;
        //添加cmd需要的存儲過程參數
        if (cmdparms != null)
        {
            foreach (oledbparameter parm in cmdparms)
                cmd.parameters.add(parm);
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久成人免费视频| 在线免费观看羞羞视频一区二区| 亚洲女成人图区| 尤物tv国产一区| 欧美第一页在线| 国语对白做受69| 91精品国产乱码久久久久久久久| 国产日韩亚洲欧美| 亚洲国产精品美女| 日韩视频免费看| 亚洲人成电影在线观看天堂色| 久久视频这里只有精品| 国产精品国产三级国产aⅴ9色| 国产美女精品视频免费观看| 高清欧美性猛交xxxx黑人猛交| 91精品久久久久久久久中文字幕| 国产一区二区日韩精品欧美精品| 亚洲精品国产精品国产自| 亚洲一区中文字幕在线观看| 成人精品网站在线观看| 欧美日韩中国免费专区在线看| 欧美日本亚洲视频| 日韩av电影在线免费播放| 九九热这里只有精品6| 91av中文字幕| 亚洲欧美一区二区激情| 国产视频久久久久| 久久人人爽国产| 在线看日韩av| 欧美激情视频一区二区| 欧美性猛交xxxx乱大交蜜桃| 精品久久香蕉国产线看观看亚洲| 日韩精品免费在线观看| 久久视频在线免费观看| 国产精品普通话| 97热在线精品视频在线观看| 97香蕉超级碰碰久久免费的优势| 亚洲精品日韩av| 秋霞av国产精品一区| 97视频国产在线| 亚洲成人av在线播放| 亚洲精品综合久久中文字幕| 国产91精品在线播放| 精品美女国产在线| 久久伊人免费视频| 欧美日韩国产成人| 97国产在线视频| 国产精品电影一区| 午夜精品久久久久久久久久久久| 美女扒开尿口让男人操亚洲视频网站| 国产精品入口免费视频一| 中国china体内裑精亚洲片| 亚洲欧美另类国产| 久久视频在线免费观看| 日韩精品免费一线在线观看| 国内精品免费午夜毛片| 欧美人成在线视频| 欧美性黄网官网| 国产精品6699| 国产精品99久久久久久久久| 欧美国产日产韩国视频| 91高清视频在线免费观看| 欧美黑人性视频| 国产色婷婷国产综合在线理论片a| 国产精品福利网| 综合136福利视频在线| 色综合视频网站| 中文字幕欧美日韩va免费视频| 国产香蕉精品视频一区二区三区| 大量国产精品视频| 欧美日韩中文字幕在线| 日韩精品免费一线在线观看| 国产欧美一区二区白浆黑人| 亚洲欧美中文日韩在线| 精品视频久久久久久久| 最新国产精品拍自在线播放| 日韩国产在线看| 国产精品视频资源| 伊人伊成久久人综合网站| 亚洲自拍偷拍在线| 国产精品∨欧美精品v日韩精品| 欧美激情视频三区| 亚洲精品99久久久久中文字幕| 91精品在线一区| 欧美在线xxx| 91禁国产网站| 亚洲国产成人一区| 超碰精品一区二区三区乱码| 尤物九九久久国产精品的特点| 国产亚洲欧美日韩美女| 精品毛片三在线观看| 欧美电影免费在线观看| 国产在线一区二区三区| 亚洲人在线视频| 色综久久综合桃花网| 国产一区二区三区在线播放免费观看| 日韩一区在线视频| 日韩精品免费一线在线观看| 亚洲欧美日韩在线高清直播| 日韩av中文在线| 热re91久久精品国99热蜜臀| 国产精品视频永久免费播放| 国产精品爽爽爽| 91精品国产综合久久久久久久久| 尤物99国产成人精品视频| 久久免费视频这里只有精品| 成人羞羞国产免费| 国产在线98福利播放视频| 久久免费国产精品1| 欧美日韩第一页| 亚洲欧洲高清在线| 日韩欧美国产视频| 色偷偷综合社区| 91人成网站www| 亚洲一区制服诱惑| 日韩动漫免费观看电视剧高清| 岛国视频午夜一区免费在线观看| 日韩成人在线视频网站| 久久久亚洲成人| 98午夜经典影视| 欧美激情亚洲激情| 久久久久久这里只有精品| 国产精品日韩在线播放| 久久精品99国产精品酒店日本| 成人亚洲欧美一区二区三区| 777国产偷窥盗摄精品视频| 国产99久久精品一区二区| 国产小视频国产精品| 精品久久久久久久久久久| 国产不卡精品视男人的天堂| 国产精品免费久久久久影院| 韩国v欧美v日本v亚洲| 国产亚洲欧美日韩精品| 久久人人爽人人爽人人片av高请| 欧美xxxx14xxxxx性爽| 亚洲人a成www在线影院| 91高潮在线观看| 人体精品一二三区| 久久天天躁狠狠躁夜夜躁2014| 亚洲国产婷婷香蕉久久久久久| 日韩精品免费视频| 日本久久久久久久| 国产情人节一区| 欧美xxxx综合视频| 国产69久久精品成人看| 懂色av影视一区二区三区| 日韩美女写真福利在线观看| 欧美精品免费在线观看| 欧美成年人网站| 国产午夜精品一区二区三区| 亚洲xxxxx| 欧美性猛交xxxx免费看漫画| 日韩视频免费看| 黄色一区二区在线观看| 欧美大尺度激情区在线播放| 日韩欧美国产中文字幕| 日本高清+成人网在线观看| 在线看日韩欧美| 久久视频国产精品免费视频在线| 亚洲午夜久久久影院| 欧美与欧洲交xxxx免费观看| 日韩av免费观影| 欧美网站在线观看| 久久中文精品视频|