韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

運(yùn)用Ado.net取得數(shù)據(jù)庫(kù)架構(gòu)信息

運(yùn)用Ado.net取得數(shù)據(jù)庫(kù)架構(gòu)信息

更新時(shí)間:2022-06-06 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

使用Ado.net獲取數(shù)據(jù)庫(kù)架構(gòu)信息

秋 楓 2004-7-3

在開發(fā)的時(shí)候有時(shí)需要獲取數(shù)據(jù)庫(kù)架構(gòu)信息來(lái)得到數(shù)據(jù)庫(kù)的一些其他信息,比如存儲(chǔ)過(guò)程、視圖、表、字段的類型、備注說(shuō)明等。通過(guò)OleDb.NET數(shù)據(jù)提供程序可以比較簡(jiǎn)潔的實(shí)現(xiàn)這一點(diǎn)。



一、OleDbConnection的GetOleDbSchemaTable方法

在Ado.net的對(duì)象模型的該對(duì)象充當(dāng)了與數(shù)據(jù)源之間的連接,通過(guò)Connection對(duì)象來(lái)連接數(shù)據(jù)庫(kù)或者從數(shù)據(jù)庫(kù)斷開以釋放寶貴的資源。這里我們需要用到的是OleDbConnection對(duì)象的GetOleDbSchemaTable 方法,

定義如下:

public DataTable GetOleDbSchemaTable( Guid schema,object[] restrictions);

方法返回一個(gè)DataTable對(duì)象;

第一個(gè)參數(shù)是OleDbSchemaGuid的枚舉值,是用來(lái)指定架構(gòu)信息類型,可以根據(jù)某一個(gè)值來(lái)決定所需的架構(gòu)類型,如表、列、視圖等,具體可以參考MSDN;

第二個(gè)參數(shù)為Restrictions的參數(shù),作為一個(gè)oject數(shù)組數(shù)據(jù)類型,起到過(guò)濾的作用,如果把第二個(gè)參數(shù)設(shè)置為null,那就返回指定的OleDbSchemaGuid枚舉的所有信息了。

下面用示例程序來(lái)進(jìn)行相關(guān)說(shuō)明,示例界面如下:




整個(gè)窗體包括:

一個(gè)TextBox,用來(lái)輸入數(shù)據(jù)庫(kù)連接字符串;

一個(gè)DataGrid,用來(lái)顯示架構(gòu)信息;

查看按鈕,點(diǎn)擊獲取架構(gòu)信息。

這里以SqlServer 的Northwind數(shù)據(jù)庫(kù)為例,在查看按鈕事件中進(jìn)行了如下處理:

private void buttonOK_Click(object sender, System.EventArgs e)

{

this.dataGridSchema.DataSource = GetSqlDbSchemaUsingOleDbConnection (this.textBoxConnString.Text.Trim());

}

通過(guò)文本框把連接字符串傳入GetSqlDbSchemaUsingOleDbConnection函數(shù),由OleDbConnection對(duì)象來(lái)連接數(shù)據(jù)庫(kù),并獲取構(gòu)架信息,

private DataTable GetSqlDbSchemaUsingOleDbConnection(string connString)

{

OleDbConnection myConn = new OleDbConnection(connString);

myConn.Open();

DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);

myConn.Close();

return table1;

}

上面的函數(shù)返回?cái)?shù)據(jù)庫(kù)的所有字段,下面來(lái)看看如何通過(guò)Restrictions參數(shù)來(lái)過(guò)濾信息;

參數(shù)數(shù)據(jù)可以定義為

object[] restrictions =

new object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"};

具體可參考MSDN文檔。

對(duì)上面函數(shù)進(jìn)行修改,我們只獲取Northwind 數(shù)據(jù)庫(kù)Customers表的信息:

private DataTable GetSqlDbSchemaUsingOleDbConnection(string connString)

{

OleDbConnection myConn = new OleDbConnection(connString);

object [] restrictions = new object[]{"Northwind","dbo","Customers",null};

myConn.Open();

DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrictions);

myConn.Close();

return table1;

}



另外對(duì)于Access數(shù)據(jù)庫(kù)架構(gòu)信息的獲取也可以通過(guò)上面的方法來(lái)完成,

private DataTable GetMdbSchemaUsingOleDbConnection(string connString)

{

OleDbConnection myConn = new OleDbConnection(connString);

myConn.Open();

DataTable table1 = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);

myConn.Close();

return table1;

}

前面的界面圖示就是執(zhí)行結(jié)果,這里我用的是Access 2003。



二.OleDbDataReader的GetSchemaTable方法

另外一個(gè)獲取架構(gòu)的方法是使用OleDbDataReader的GetSchemaTable方法,

public virtual DataTable GetSchemaTable();

該方法需要結(jié)合OleDbCommand.ExecuteReader的一個(gè)重載方法才能完成,可以設(shè)置重載方法的唯一參數(shù),

public OleDbDataReader ExecuteReader(CommandBehavior behavior);

CommandBehavior為一枚舉對(duì)象,定義為

[Flags]

[Serializable]

public enum CommandBehavior



CommandBehavior.SchemaOnly:只返回列信息,不影響數(shù)據(jù)庫(kù)狀態(tài);

CommandBehavior.KeyInfo:返回列和主鍵信息。執(zhí)行此查詢時(shí)不鎖定選定的行。

如果使用CommandBehavior.SchemaOnly就不需要再加CommandBehavior.KeyInfo了。

下面是演示代碼:

private DataTable GetSchemaUsingOleDbDataReader(string connString)

{

OleDbConnection myConn = new OleDbConnection(connString);

DataTable table1 = null;

try

{

OleDbCommand cmd = new OleDbCommand("Select * from Customers",myConn);

myConn.Open();

OleDbDataReader dataReader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);

table1 = dataReader.GetSchemaTable();

dataReader.Close();

}

catch(Exception ex)

{

MessageBox.Show(ex.ToString());

}

finally

{

if(myConn.State != ConnectionState.Closed)

myConn.Close();

myConn.Dispose();

}

return table1;

}

該方法返回了Customers表的架構(gòu)信息,當(dāng)然,如果連接到Access數(shù)據(jù)庫(kù),上面的函數(shù)只需修改一下連接字符串和查詢字符串就可以正確執(zhí)行。



三、其他補(bǔ)充

我們這里所說(shuō)的是通過(guò)OleDb.NET來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)架構(gòu)信息的獲取。對(duì)于特定的數(shù)據(jù)提供程序Sql Client.NET和Oracle Client.NET等還可以通過(guò)其他手段實(shí)現(xiàn)。

比如:

在Sql Server中可以通過(guò)信息架構(gòu)視圖來(lái)獲取數(shù)據(jù):

SELECT * FROM INFORMATION_SCHEMA.TABLES

獲取表名的清單:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'

獲取視圖名清單:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'VIEW'

還有獲取列,存儲(chǔ)過(guò)程等,具體可以查看SQL SERVER 的聯(lián)機(jī)幫助。

在Oracle數(shù)據(jù)庫(kù)中可以通過(guò)查詢Oracle數(shù)據(jù)字典來(lái)獲取這些信息,具體可以參考Oracle的相關(guān)文檔。



本文參考:《MSDN》、《ADO.NET Core Reference》、《Sql Server 2000聯(lián)機(jī)叢書》

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
污网站在线观看免费| 97青娱国产盛宴精品视频| 亚洲乱妇老熟女爽到高潮的片| 久久亚洲精精品中文字幕| 暖暖视频日本免费| 在线免费观看高清视频| 国产原创中文在线观看| 欧美吻胸吃奶大尺度电影| 日本高清不卡aⅴ免费网站| 国精品日韩欧美一区二区三区| 一区二区视频免费| 九九久久久久久久久激情| 国产精品入口日韩视频大尺度| 国产一级在线观看www色| 亚洲中午字幕| 新91视频在线观看| 中文字幕777| 国产ts人妖调教重口男| 桃乃木香奈和黑人aⅴ在线播放| 日本一区二区视频在线观看| 国产精久久久久久| 在线播放不卡| 国产有码在线| 欧美高清视频一二三区| 超碰最新在线| 日韩精品一区中文字幕| 97精品在线观看| 麻豆精品国产| 中文字幕三级电影| 久久精品一级片| 国产日韩亚洲欧美| 亚洲精品日韩欧美| 国产在线一区二| 小泽玛利亚视频在线观看| 久久久久久久久久久久久av| 日韩精品分区| 高清毛片在线观看| 精品久久国产精品| 国产毛片久久久久久| 婷婷六月天在线| 在线观看日韩欧美| 欧美 日韩 精品| 在线免费观看h视频| 精品国产av色一区二区深夜久久| 欧美视频免费在线观看| 九九热在线观看视频| 最新中文在线视频| 最近中文字幕在线免费观看| 一区二区三区视频播放| 亚洲女人被黑人巨大进入al| 小泽玛利亚一区二区三区视频| 视频二区在线| 今天的高清视频免费播放成人| 精品久久久久久久久久中文字幕| 7777精品伊人久久久大香线蕉超级流畅| 欧美四级在线| 国产va亚洲va在线va| 一区二区三区四区国产精品| 俄罗斯一级**毛片在线播放| 欧美tickling网站挠脚心| 午夜精品在线| 51精品视频一区二区三区| 国产自产女人91一区在线观看| 激情黄色小视频| 国产精品88a∨| 亚洲欧美激情在线| 中文字幕av资源一区| 欧美日韩国产黄色| 一区二区三区欧美激情| 中文字幕av免费| 中文字幕乱码日本亚洲一区二区| 国产欧美日韩精品一区| 男人天堂影院| 成人免费xx| 欧美日韩xxxxx| 人妻与黑人一区二区三区| 亚洲高清在线视频| 蜜桃av噜噜一区二区三区麻豆| 色琪琪综合男人的天堂aⅴ视频| 欧美日韩一级黄| 羞羞视频在线免费国产| 午夜精品一区二区三区免费视频| 久草福利资源在线| 天天色棕合合合合合合合| 捆绑变态av一区二区三区| www.99热| av一区二区在线看| av成人免费| 美日韩在线视频| 超清福利视频| 欧美日韩午夜在线| 免费短视频成人日韩| 日韩在线视频一区二区三区| 国产二级c片l毛片| 国产一区二区三区在线观看网站| 在线观看午夜看亚太视频| 日本一区二区三不卡| 色综合影院在线观看| 激情综合网站| 污版视频在线观看| 韩国三级电影一区二区| 国产又黄又猛的视频| 紧身裙女教师波多野结衣| 中日韩黄色大片| 久久人体大胆视频| 久久久这里只有精品视频| а√中文在线资源库| 亚洲巨乳在线| 国产精品手机在线播放| 国产91对白刺激露脸在线观看| 影音先锋中文字幕一区| 日本电影在线观看网站| 成人情趣视频网站| 四虎影视免费看电影| 97精品视频在线观看| 色噜噜狠狠狠综合曰曰曰88av| 国产在线视频一区二区| 黄色毛片视频| 亚洲免费在线观看视频| 激情五月***国产精品| av一区二区三区免费观看| 日韩理论在线观看| 久久久久久美女| 欧美精品粉嫩高潮一区二区| 亚洲天堂男人的天堂| 欧美性xxx| 日韩av一级大片| 麻豆精品视频在线| 激情av综合| 午夜三级在线观看| 97国产成人精品视频| 国产主播一区二区| 一级特黄毛片| 中文字幕狠狠干| 日韩Av无码精品| 亚洲三级色网| 成人久久精品人妻一区二区三区| 国产偷久久久精品专区| 色吊丝一区二区| 国产小视频在线免费观看| 亚洲国产精品va在线看黑人动漫| 在线免费三级电影网站| 91在线观看入口| 久久久久久久综合狠狠综合| 中文字幕av资源一区| 日韩成人性视频| 日本精品免费观看高清观看| 成人性生活av| 亚洲麻豆国产自偷在线| 亚洲 高清 成人 动漫| 亚洲人午夜色婷婷| 日韩免费一区| 色一情一乱一乱一区91av| 欧产日产国产精品98| 僵尸世界大战2 在线播放| 丝袜美腿精品国产二区| 午夜天堂精品久久久久| 日韩一区二区三区免费看| 高清日韩av| 97se国产在线视频| 欧美激情视频在线播放| 久久久亚洲高清| 国产一区99| 免费高清特黄a大片| 不卡中文字幕av| dy888夜精品国产专区| 呦视频在线一区二区三区| 国产午夜精品久久久久久久| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久av中文字幕片| 在线一区亚洲| 在线视频亚洲一区| 九九国产精品视频| 国内一区二区三区精品视频| 国产精品免费视频观看| 亚洲精选一区二区三区| 国产一区 二区 三区一级| 2022国产精品| 日韩精品免费在线视频观看| 亚洲精品动漫久久久久| 亚洲一区二区三区四区在线播放| 99精品一区二区三区的区别| 国产99久久九九精品无码| 妖精视频一区二区三区免费观看| 天天做夜夜爱爱爱| 国产精品网红直播| 天天操 夜夜操| 亚洲韩国一区二区三区| 欧美丰满日韩| 色就是色亚洲色图| 激情欧美一区二区三区中文字幕| 国产白浆在线| 欧美aa在线视频| 在线影视一区二区三区| 欧美日本视频在线| 久久精品无码一区二区三区毛片| 亚洲一级大片| 久久久国产午夜精品| 三区视频在线观看| av在线播放亚洲| 18av视频| 忘忧草在线www成人影院| 欧美日韩人妻精品一区二区三区| 久久久久久久电影一区| 欧美日韩国产网站| 久草免费福利视频| 亚洲一区二区在线播放相泽| 国产欧美在线看| 欧美一级视频在线观看| 久久精品不卡| 1区2区3区在线| 91精品国模一区二区三区| 亚洲女同志亚洲女同女播放| 黑人无套内谢中国美女| 国产主播在线资源| 成人免费视频国产免费| 欧美夫妇交换xxx| 亚洲午夜激情网页| 成人精品一区二区三区中文字幕| 亚洲视频在线观看日本a| 人人爽香蕉精品| 欧美国产中文字幕| 国产视频二区在线观看| 99在线精品视频免费观看20| 涩涩视频免费网站| 又黄又骚的视频| 三上悠亚影音先锋| 五月天中文字幕一区二区| 中文字幕在线久热精品| 亚洲精品女人| 成熟丰满熟妇高潮xxxxx视频| 999www成人| 久久出品必属精品| 久久久久久久一区二区三区| 天堂а√在线中文在线新版| 99精品在免费线中文字幕网站一区| 亚洲黄一区二区| 久久精品国产亚洲高清剧情介绍| 男插女视频网站| 亚洲国产精品一区二区第四页av| 人人妻人人澡人人爽欧美一区| 91成人福利在线观看| 韩国19禁主播vip福利视频| 欧美日韩国产精品一区二区三区四区| 国产精品无圣光一区二区| a天堂中文在线88| 99re在线观看| 天天操天天干天天操天天干| 天天做天天摸天天爽国产一区| 日韩精品在线私人| 奇米影视狠狠狠| 成人在线小说| 依人在线免费视频| 亚洲色图18p| 亚洲成人av中文| 欧美日韩国产小视频| 五月婷婷一区二区三区| 国产精品毛片在线看| 亚洲黄色在线| 亚洲免费av一区二区三区| 国产草草影院ccyycom| xfplay爱情电影网love| 色狠狠av一区二区三区| 国产一区二区自拍视频| 欧美日本国产在线| 欧美极品美女视频网站在线观看免费| 精品国产一区二区三区2021| 亚洲激情视频网| 日本精品在线观看| 久久久久久久9| 国产精品久久久久久免费| 欧洲色大大久久| 超碰av在线免费观看| 欧美成人一区二区在线观看| 成人污污www网站免费丝瓜| 色呦呦网站一区| 国产亚洲精品久久久| 高潮白浆视频| 国产在线观看无码免费视频| 欧美日韩一区二区三区在线视频| 国产又爽又黄又嫩又猛又粗| 国产**成人网毛片九色| 国产大片在线免费观看| 亚洲精品欧美激情| 欧美 日韩 国产精品免费观看| 亚洲高清一二三区| 亚洲第一精品自拍| 99精品国产一区二区三区不卡| 亚洲激情影院| 亚洲国产精品综合小说图片区| 国产精品视频免费| 久久久99精品久久| 久久久影院免费| 日韩av中文字幕一区二区| 中文字幕在线不卡一区二区三区| 国产精品视频一区二区三| 欧美少妇性生活视频| 欧美日韩一卡| 日本一本在线视频| 日日夜夜精品| 欧美mv日韩mv国产网站| 日本三级视频在线观看| 精品一级视频| 在线观看国产免费视频| 久久久久久com| 亚洲国产美女搞黄色| 一区二区欧美国产| 国产欧美在线观看免费| 91精品欧美综合在线观看最新| 九九久久久久久久久激情| 精品国产拍在线观看| 亚洲天堂一区在线| wwww亚洲| 麻豆福利视频| 日本久久二区| 欧美性xxxx极品hd欧美| 中文字幕一区二区三区在线观看| 国产亚洲毛片| a视频在线播放| 亚洲无人区码一码二码三码的含义| 任我爽在线视频精品一| 99视频精品全部免费在线| 另类小说综合网| xxxx在线免费观看| youjizz久久| 男女性杂交内射妇女bbwxz| 午夜免费啪视频观看视频| 午夜视频你懂的|