• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet)

    來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 07:29:09
    文檔

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet)

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet):面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用 (dotNet) 現(xiàn)在的應(yīng)用程序很大一部分都是與數(shù)據(jù)庫相關(guān)的程序,而寫數(shù)據(jù)庫程序會涉及到很多數(shù)據(jù)表,訪問和操縱數(shù)據(jù)表構(gòu)成了數(shù)據(jù)庫應(yīng)用程序最常見的動作,所以,編寫出高效的程序?qū)τ诔绦騿T來說是不得不去考慮的。本文將討論
    推薦度:
    導(dǎo)讀面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet):面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用 (dotNet) 現(xiàn)在的應(yīng)用程序很大一部分都是與數(shù)據(jù)庫相關(guān)的程序,而寫數(shù)據(jù)庫程序會涉及到很多數(shù)據(jù)表,訪問和操縱數(shù)據(jù)表構(gòu)成了數(shù)據(jù)庫應(yīng)用程序最常見的動作,所以,編寫出高效的程序?qū)τ诔绦騿T來說是不得不去考慮的。本文將討論

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用 (dotNet) 現(xiàn)在的應(yīng)用程序很大一部分都是與數(shù)據(jù)庫相關(guān)的程序,而寫數(shù)據(jù)庫程序會涉及到很多數(shù)據(jù)表,訪問和操縱數(shù)據(jù)表構(gòu)成了數(shù)據(jù)庫應(yīng)用程序最常見的動作,所以,編寫出高效的程序?qū)τ诔绦騿T來說是不得不去考慮的。本文將討論

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet)

    現(xiàn)在的應(yīng)用程序很大一部分都是與數(shù)據(jù)庫相關(guān)的程序,而寫數(shù)據(jù)庫程序會涉及到很多數(shù)據(jù)表,訪問和操縱數(shù)據(jù)表構(gòu)成了數(shù)據(jù)庫應(yīng)用程序最常見的動作,所以,編寫出高效的程序?qū)τ诔绦騿T來說是不得不去考慮的。本文將討論這個(gè)話題,希望對讀者朋友有所裨益。

    面向?qū)ο笫钱?dāng)今程序界的普遍編程思想,他具有三個(gè)最基本的特征:封裝、繼承和多態(tài)。繼承對于代碼的復(fù)用非常有效,多態(tài)則是指函數(shù)(方法)的多種形態(tài),可以通過子類重寫父類的方法來改變對象的行為,在面向?qū)ο缶幊讨衅鸬椒浅V匾淖饔谩D敲矗趯?shí)際應(yīng)用中,到底能起到什么樣的作用呢?也許使用例子最能表達(dá)這個(gè)思想。

    比如,我們要寫一個(gè)簡單的論壇程序,經(jīng)過分析,可以得出需要下面的表:用戶表(Users)、版塊表(BBSBlock)、回復(fù)表(Reply)、主題表(Topic)等(為了方便代碼的繼承,我把所有表的id號都設(shè)成相同的名稱:id)。對于這些表,都有一些相同的操作:瀏覽,刪除,添加和修改。那么,我們是不是對每個(gè)表都寫對應(yīng)的方法來實(shí)現(xiàn)呢?顯示,這種方法是笨拙的。而繼承,在這里就會發(fā)揮極為重要的作用。思想是:寫一個(gè)父類,把這些基本的操作寫好,然后,將每個(gè)表抽象成一個(gè)類,并繼承剛才創(chuàng)建的父類,此時(shí),所有的子類都具有這些基本操作了。

    我們可以這樣定義父類:

    public class DBBaseClass

    {

    protected string TableName;//表名

    protected SqlConnection con;//連接對象

    public DBBaseClass():this("Users")

    {

    }

    ///

    /// 構(gòu)造函數(shù)

    ///

    /// 表名

    public DBBaseClass(string TableName)

    {

    this.TableName = TableName;

    if(con == null)

    {

    con = new SqlConnection("server=accp-lzh;database=MissBBS;uid=sa;pwd=sa");

    }

    else

    {

    if(con.State == ConnectionState.Open)

    con.Close();

    }

    }

    ///

    /// 獲取數(shù)據(jù)集

    ///

    /// 如果count為0,則獲取所有數(shù)據(jù)集,否則獲取指定條數(shù)(從頂部)的記錄

    /// 返回DataSet

    public DataSet Select(int count)

    {

    string sql;

    if(count == 0)

    sql = "select * from " + this.TableName ;

    else

    sql = "select top " + count.ToString() + " * from " + this.TableName + " oreder by id desc";

    SqlCommand selectCmd = new SqlCommand(sql,con);

    SqlDataAdapter adapter = new SqlDataAdapter();

    adapter.SelectCommand = selectCmd;

    DataSet ds = new DataSet();

    try

    {

    con.Open();

    adapter.Fill(ds,"BBSTable");

    con.Close();

    }

    catch(Exception)

    {

    return null;

    }

    return ds;

    }

    }

    在這個(gè)類中,我們定義了兩個(gè)重載的構(gòu)造函數(shù)和一個(gè)用來獲取數(shù)據(jù)集的方法,同時(shí),定義了兩個(gè)作用很大的字段,一個(gè)是表名,一個(gè)是連接對象。當(dāng)其他類繼承這個(gè)類時(shí),就不再需要再次定義表和連接對象了,最主要是的,這兩個(gè)字段為我們更好的實(shí)現(xiàn)繼承起到了關(guān)鍵的作用。

    接下來,我們創(chuàng)建一個(gè)子類:Users。這個(gè)類是表Users的抽象:

    public class User : DBBaseClass

    {

    ///

    /// 無參構(gòu)造函數(shù)

    ///

    public User():base("Users")

    {

    }

    ///

    /// 構(gòu)造函數(shù)

    ///

    /// 表名

    public User(string TableName) : base(TableName)

    {

    }

    }

    現(xiàn)在,大家可以看出來,我們只是寫了該類的兩個(gè)構(gòu)造函數(shù),就具有返回表中所有數(shù)據(jù)集的功能了,因?yàn)樵摫砝^承了DBBaseClass。

    同樣,我們再寫一個(gè)子類:Topic,該類是表Topic的抽象。

    public class Topic : DBBaseClass

    {

    public Topic() : base("Topic")

    {

    }

    public Topic(string TableName) : base(TableName)

    {

    }

    }

    User一樣,該類也同樣具有了返回所有數(shù)據(jù)集的功能。

    實(shí)例化子類時(shí),采用簡單對象工廠設(shè)計(jì)模式,返回不同類型的對象。

    public class Factory

    {

    public Factory()

    {

    }

    public static DBBaseClass GetObject(string TableName)

    {

    switch(TableName)

    {

    case "Users" :

    return new User();

    case "Topic":

    return new Topic();

    case "BBSBlock":

    return new BBSBlock();

    case "Reply":

    return new Reply();

    case "BBSMaster":

    return new BBSMaster();

    default:

    return new DBBaseClass();

    }

    }

    }

    下面來看一看如何使用:

    User user = (User)Factory.GetObject("Users");

    DataSet ds1 = new DataSet();

    ds1 = user.Select(0);

    Topic topic = (Topic)Factory.GetObject("Topic");

    DataSet ds2 = new DataSet();

    ds2 = topic.Select(0);

    看完之后,您有什么想法?如果您是一個(gè)經(jīng)驗(yàn)豐富的程序員,這種方法肯定會經(jīng)常采用,如果您剛剛接觸,理解這種思想還是大有好處的。

    posted on 2004年08月19日 3:28 PM

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet)

    面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用(dotNet):面向?qū)ο笤跀?shù)據(jù)庫應(yīng)用程序中的應(yīng)用 (dotNet) 現(xiàn)在的應(yīng)用程序很大一部分都是與數(shù)據(jù)庫相關(guān)的程序,而寫數(shù)據(jù)庫程序會涉及到很多數(shù)據(jù)表,訪問和操縱數(shù)據(jù)表構(gòu)成了數(shù)據(jù)庫應(yīng)用程序最常見的動作,所以,編寫出高效的程序?qū)τ诔绦騿T來說是不得不去考慮的。本文將討論
    推薦度:
    標(biāo)簽: 中的 應(yīng)用 程序
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品麻豆入口| 欧美精品香蕉在线观看网| 国产69精品久久久久99尤物| 精品人妻va出轨中文字幕| 久久夜色精品国产噜噜亚洲AV| 精品人妻码一区二区三区| 91视频国产精品| 成人国产精品日本在线观看| 99热精品久久只有精品| 日韩精品一区二区三区视频| 热久久国产欧美一区二区精品| 国产a精品视频| 精品少妇无码AV无码专区| 国产情侣大量精品视频| 88国产精品欧美一区二区三区| heyzo高无码国产精品| 国产精品极品美女自在线观看免费| 国产精品自在线拍国产手机版| 国内精品久久久久影院免费| 久久99国产精品99久久| 国产成人精品曰本亚洲79ren| 亚洲精品美女久久777777| 夜色www国产精品资源站| 国产成人无码精品久久久免费| 2018国产精华国产精品| 欧美国产日韩精品| 国产精品v欧美精品v日韩精品| 一本一本久久a久久精品综合麻豆| 亚洲精品无码久久久| 四虎影视884a精品国产四虎| 久久精品无码一区二区日韩AV | 亚洲成人国产精品| 国产精品日韩欧美制服| 亚洲精品视频在线看| 日韩精品在线免费观看| 久久精品国产亚洲AV无码麻豆| 国产精品一区三区| 欧美一区二区精品久久| 熟女精品视频一区二区三区| 精品国产黑色丝袜高跟鞋| 国产精品99久久精品|