如何用ADO.NETADOX得到并改變Schema信息

本篇內(nèi)容主要講解“如何用ADO.NET ADOX得到并改變Schema信息”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何用ADO.NET ADOX得到并改變Schema信息”吧!

創(chuàng)新互聯(lián)提供高防物理服務(wù)器租用、云服務(wù)器、香港服務(wù)器、服務(wù)器機(jī)柜租用

經(jīng)過長時(shí)間學(xué)習(xí)ADO.NET ADOX,于是和大家分享一下關(guān)于ADO.NET ADOX方面的知識(shí),看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。ADO.NET并沒有為得到并管理schema信息提供一個(gè)完全的對(duì)象模式。你應(yīng)該用ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX)或用每個(gè)數(shù)據(jù)庫提供的本地功能來得到并改變Schema信息。ADOX是ADO對(duì)象的一個(gè)擴(kuò)展,它包括用來創(chuàng)建和修改Schema的對(duì)象。你可以編寫適用于各種數(shù)據(jù)源的代碼(不管本地語法有什么不同),因?yàn)锳DO.NET ADOX是管理schema的一個(gè)基于對(duì)象的方法。

  • 揭秘ADO.NET OracleClient命名空間對(duì)象

  • 經(jīng)典ADO.NET DataSet技巧總結(jié)

  • 趣味深談ADO.NET數(shù)據(jù)訪問技術(shù)

  • 關(guān)于ADO.NET的對(duì)象Connection詳細(xì)介紹

  • 學(xué)習(xí)筆記關(guān)于ADO.NET Connection方法簡(jiǎn)介

你可以用一個(gè)data reader對(duì)象來讀(不是設(shè)置)簡(jiǎn)單的schema信息。所有的data reader類(OleDbDataReader、SqlDataReader、OracleDataReader)都提供了一個(gè)GetSchemaTable方法,該方法可以讀取查詢到的列的元數(shù)據(jù)信息。GetSchemaTable返回一個(gè)DataTable對(duì)象(格式是每列一行)和固定的一組包含信息的列。返回的元數(shù)據(jù)可以分成三類:列元數(shù)據(jù)、數(shù)據(jù)庫特征和列屬性。返回的列可以是AllowDBNull、 IsAutoIncrement、ColumnName、IsExpression、IsReadonly和NumericPrecision等。在 MSDN資料中有完整的列表(見附加資源)。

在調(diào)用ExecuteReader時(shí),如果你執(zhí)行KeyInfo命令,那么GetSchemaTable方法就可以返回更精確的數(shù)據(jù)。你可以將KeyInfo行為同缺省的行為結(jié)合起來,執(zhí)行一個(gè)單獨(dú)的命令并得到schema和數(shù)據(jù):

reader = cmd.ExecuteReader( _  CommandBehavior.KeyInfo Or _  CommandBehavior.CloseConnection)

只有執(zhí)行KeyInfo,IsKey、BaseTableName、IsAliased、IsExpression和IsHidden字段的值才能被正確返回。如果執(zhí)行KeyInfo,關(guān)鍵的列(如果有)通常是添加在結(jié)果集的底部的,但不給它們返回?cái)?shù)據(jù)。

盡可能用預(yù)先排序的數(shù)據(jù)

ADO.NET對(duì)象模式使我們可以很容易地實(shí)現(xiàn)排序。你可以創(chuàng)建一個(gè)DataView對(duì)象并設(shè)置其Sort屬性;ADO.net runtime查看新的排序表達(dá)式并為視圖重編索引。該步驟是在內(nèi)存中實(shí)現(xiàn)的,但速度并不快。排序的花費(fèi)很高,更重要的是,它并不是個(gè)線性操作(linear operation)。對(duì)一組數(shù)據(jù)進(jìn)行排序需要n*log(n)的計(jì)算成本,就是說,隨著需要排序的條目數(shù)量的增加,直線增加的成本是很大的。因此,你應(yīng)該限制應(yīng)用程序中的排序,盡可能地運(yùn)用預(yù)先排序的數(shù)據(jù)。在Web應(yīng)用程序中,動(dòng)態(tài)排序?qū)π阅艿挠绊懯窍喈?dāng)大的。既然如此,你就應(yīng)該設(shè)計(jì)應(yīng)用程序,限制對(duì)動(dòng)態(tài)排序的需求,并依賴在數(shù)據(jù)庫服務(wù)器中寫死的算法。除非你在用應(yīng)用程序的一個(gè)可以使復(fù)雜性低于n*log(n)極限的特殊的功能,否則避免運(yùn)用手工排序算法,因?yàn)檫@種算法可能比系統(tǒng)中的算法更糟

到此,相信大家對(duì)“如何用ADO.NET ADOX得到并改變Schema信息”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章標(biāo)題:如何用ADO.NETADOX得到并改變Schema信息
分享路徑:http://bm7419.com/article2/ijppoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)