您好,登錄后才能下訂單哦!
本篇內容主要講解“如何用ADO.NET ADOX得到并改變Schema信息”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何用ADO.NET ADOX得到并改變Schema信息”吧!
經過長時間學習ADO.NET ADOX,于是和大家分享一下關于ADO.NET ADOX方面的知識,看完本文你肯定有不少收獲,希望本文能教會你更多東西。ADO.NET并沒有為得到并管理schema信息提供一個完全的對象模式。你應該用ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX)或用每個數據庫提供的本地功能來得到并改變Schema信息。ADOX是ADO對象的一個擴展,它包括用來創建和修改Schema的對象。你可以編寫適用于各種數據源的代碼(不管本地語法有什么不同),因為ADO.NET ADOX是管理schema的一個基于對象的方法。
揭秘ADO.NET OracleClient命名空間對象
經典ADO.NET DataSet技巧總結
趣味深談ADO.NET數據訪問技術
關于ADO.NET的對象Connection詳細介紹
學習筆記關于ADO.NET Connection方法簡介
你可以用一個data reader對象來讀(不是設置)簡單的schema信息。所有的data reader類(OleDbDataReader、SqlDataReader、OracleDataReader)都提供了一個GetSchemaTable方法,該方法可以讀取查詢到的列的元數據信息。GetSchemaTable返回一個DataTable對象(格式是每列一行)和固定的一組包含信息的列。返回的元數據可以分成三類:列元數據、數據庫特征和列屬性。返回的列可以是AllowDBNull、 IsAutoIncrement、ColumnName、IsExpression、IsReadonly和NumericPrecision等。在 MSDN資料中有完整的列表(見附加資源)。
在調用ExecuteReader時,如果你執行KeyInfo命令,那么GetSchemaTable方法就可以返回更精確的數據。你可以將KeyInfo行為同缺省的行為結合起來,執行一個單獨的命令并得到schema和數據:
reader = cmd.ExecuteReader( _ CommandBehavior.KeyInfo Or _ CommandBehavior.CloseConnection)
只有執行KeyInfo,IsKey、BaseTableName、IsAliased、IsExpression和IsHidden字段的值才能被正確返回。如果執行KeyInfo,關鍵的列(如果有)通常是添加在結果集的底部的,但不給它們返回數據。
盡可能用預先排序的數據
ADO.NET對象模式使我們可以很容易地實現排序。你可以創建一個DataView對象并設置其Sort屬性;ADO.net runtime查看新的排序表達式并為視圖重編索引。該步驟是在內存中實現的,但速度并不快。排序的花費很高,更重要的是,它并不是個線性操作(linear operation)。對一組數據進行排序需要n*log(n)的計算成本,就是說,隨著需要排序的條目數量的增加,直線增加的成本是很大的。因此,你應該限制應用程序中的排序,盡可能地運用預先排序的數據。在Web應用程序中,動態排序對性能的影響是相當大的。既然如此,你就應該設計應用程序,限制對動態排序的需求,并依賴在數據庫服務器中寫死的算法。除非你在用應用程序的一個可以使復雜性低于n*log(n)極限的特殊的功能,否則避免運用手工排序算法,因為這種算法可能比系統中的算法更糟
到此,相信大家對“如何用ADO.NET ADOX得到并改變Schema信息”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。