• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            twzheng's cppblog

            『站在風(fēng)口浪尖緊握住鼠標(biāo)旋轉(zhuǎn)!』 http://www.cnblogs.com/twzheng

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              136 隨筆 :: 78 文章 :: 353 評(píng)論 :: 0 Trackbacks
            類型化數(shù)據(jù)集與非類型化數(shù)據(jù)集

            類型化數(shù)據(jù)集先是從基類 DataSet 派生,然后使用“數(shù)據(jù)集設(shè)計(jì)器”中的信息(存儲(chǔ)在 .xsd 文件中)生成一個(gè)新的強(qiáng)類型數(shù)據(jù)集類。架構(gòu)中的信息(表、列等)被作為一組第一類對(duì)象和屬性生成并編譯為此新數(shù)據(jù)集類。由于類型化數(shù)據(jù)集繼承自基 DataSet 類,因此類型化類具有 DataSet 類的所有功能,可以與采用 DataSet 類的實(shí)例作為參數(shù)的方法一起使用。 

            相形之下,非類型化數(shù)據(jù)集沒(méi)有相應(yīng)的內(nèi)置架構(gòu)。與類型化數(shù)據(jù)集一樣,非類型化數(shù)據(jù)集也包含表、列等,但它們只作為集合公開(kāi)。(不過(guò),在手動(dòng)創(chuàng)建了非類型化數(shù)據(jù)集中的表和其他數(shù)據(jù)元素后,可以使用數(shù)據(jù)集的 WriteXmlSchema 方法將數(shù)據(jù)集的結(jié)構(gòu)導(dǎo)出為一個(gè)架構(gòu)。)



            對(duì)比類型化和非類型化數(shù)據(jù)集中的數(shù)據(jù)訪問(wèn)
            類型化數(shù)據(jù)集的類有一個(gè)對(duì)象模型,在此對(duì)象模型中該類的屬性采用表和列的實(shí)際名稱。例如,如果使用的是類型化數(shù)據(jù)集,可以使用如下代碼引用列:

            // This accesses the CustomerID column in the first row of the Customers table.
            string customerIDValue = northwindDataSet.Customers[0].CustomerID;
            相比較而言,如果使用的是非類型化數(shù)據(jù)集,等效的代碼為:

            string customerIDValue = (string)
                dataset1.Tables["Customers"].Rows[0]["CustomerID"];

            類型化訪問(wèn)不但更易于讀取,而且完全受 Visual Studio“代碼編輯器”中 IntelliSense 的支持。除了更易于使用外,類型化數(shù)據(jù)集的語(yǔ)法還在編譯時(shí)提供類型檢查,從而大大降低了為數(shù)據(jù)集成員賦值時(shí)發(fā)生錯(cuò)誤的可能性。如果更改 DataSet 中的列名并編譯應(yīng)用程序,則會(huì)收到生成錯(cuò)誤。通過(guò)雙擊“任務(wù)列表”中的生成錯(cuò)誤,可以直接轉(zhuǎn)到引用舊列名的代碼行。在運(yùn)行時(shí)對(duì)類型化數(shù)據(jù)集中的表和列的訪問(wèn)也略為快一些,因?yàn)樵L問(wèn)是在編譯時(shí)確定的,而不是在運(yùn)行時(shí)通過(guò)集合確定。

            盡管類型化數(shù)據(jù)集有許多優(yōu)點(diǎn),但在許多情況下需要使用非類型化數(shù)據(jù)集。最顯而易見(jiàn)的情形是數(shù)據(jù)集無(wú)架構(gòu)可用。例如,當(dāng)應(yīng)用程序正在與返回?cái)?shù)據(jù)集的組件交互而您事先不知道其結(jié)構(gòu)是哪種時(shí),便會(huì)出現(xiàn)這種情況。同樣,有些時(shí)候使用的數(shù)據(jù)不具有靜態(tài)的可預(yù)知結(jié)構(gòu),這種情況下使用類型化數(shù)據(jù)集是不切實(shí)際的做法,因?yàn)閷?duì)于數(shù)據(jù)結(jié)構(gòu)中的每個(gè)更改,您都必須重新生成類型化數(shù)據(jù)集類。

            更常見(jiàn)的是,許多時(shí)候可能需要?jiǎng)討B(tài)創(chuàng)建無(wú)可用架構(gòu)的數(shù)據(jù)集。這種情況下,數(shù)據(jù)集只是一種方便的、可用來(lái)保留信息的結(jié)構(gòu)(只要數(shù)據(jù)可以用關(guān)系方法表示)。同時(shí),您還可以利用數(shù)據(jù)集的功能,如序列化傳遞到另一進(jìn)程的信息或?qū)懗?nbsp;XML 文件的能力。
            ----來(lái)自MSDN
            posted on 2007-11-26 22:59 譚文政 閱讀(642) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)
            欧美激情精品久久久久久| 影音先锋女人AV鲁色资源网久久| 97久久精品人人澡人人爽| 久久伊人五月天论坛| 亚洲精品白浆高清久久久久久| 91精品国产乱码久久久久久| 亚洲人成电影网站久久| 国产精品久久久久9999| 7777精品伊人久久久大香线蕉| 97久久精品无码一区二区| 欧美精品国产综合久久| 日韩精品国产自在久久现线拍| 久久天天躁夜夜躁狠狠| 久久996热精品xxxx| 99久久99久久精品免费看蜜桃| 一本一本久久a久久精品综合麻豆| 亚洲精品高清国产一久久| 亚洲AV日韩AV永久无码久久| 模特私拍国产精品久久| 久久久久国产一区二区| 欧美久久精品一级c片片| 久久棈精品久久久久久噜噜| 欧美一区二区久久精品| 亚洲&#228;v永久无码精品天堂久久 | 7777久久久国产精品消防器材| 久久国产美女免费观看精品| 久久er热视频在这里精品| 久久久噜噜噜久久中文福利| 亚洲AV无码久久精品色欲 | 亚洲欧美日韩精品久久| 九九久久99综合一区二区| 国产产无码乱码精品久久鸭| 午夜精品久久久久久毛片| 伊人久久大香线焦AV综合影院| 免费无码国产欧美久久18| 精品国产日韩久久亚洲| 综合网日日天干夜夜久久| 亚洲国产精品无码久久98| 亚洲精品无码久久久久| av无码久久久久不卡免费网站| 国产精品久久久久AV福利动漫|