日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
ADO.NET程序設(shè)計(jì)實(shí)現(xiàn)獲取數(shù)據(jù)庫(kù)架構(gòu)信息

ADO.NET程序設(shè)計(jì)還是比較常用的,于是我研究了一下ADO.NET程序設(shè)計(jì),在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。在ADO.NET的對(duì)象模型的該對(duì)象充當(dāng)了與數(shù)據(jù)源之間的連接,通過(guò)Connection對(duì)象來(lái)連接數(shù)據(jù)庫(kù)或者從數(shù)據(jù)庫(kù)斷開以釋放寶貴的資源。這里我們需要用到的是OleDbConnection對(duì)象的GetOleDbSchemaTable方法,定義如下:

 
 
  1. publicDataTableGetOleDbSchemaTable(Guidschema,object[]restrictions); 

#T#方法返回一個(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ō)明,示例界面ADO.NET程序設(shè)計(jì)如下:這里以SqlServer的Northwind數(shù)據(jù)庫(kù)為例,在查看按鈕事件中進(jìn)行了如下處理:

 
 
  1. privatevoidbuttonOK_Click(objectsender,System.EventArgse)  
  2. {  
  3. this.dataGridSchema.DataSource=GetSqlDbSchemaUsingOleDbConnection(this.textBoxConnString.Text.Trim());  

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

 
 
  1. privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. myConn.Open();  
  5. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);  
  6. myConn.Close();  
  7. returntable1;  

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

 
 
  1. object[]restrictions=  
  2. newobject[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"}; 

具體可參考MSDN文檔。對(duì)上面函數(shù)進(jìn)行修改,我們只獲取Northwind數(shù)據(jù)庫(kù)Customers表的信息:

 
 
  1. privateDataTableGetSqlDbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. object[]restrictions=newobject[]{"Northwind","dbo","Customers",null};  
  5. myConn.Open();  
  6. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,restrictions);  
  7. myConn.Close();  
  8. returntable1;  

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

 
 
  1. privateDataTableGetMdbSchemaUsingOleDbConnection(stringconnString)  
  2. {  
  3. OleDbConnectionmyConn=newOleDbConnection(connString);  
  4. myConn.Open();  
  5. DataTabletable1=myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);  
  6. myConn.Close();  
  7. returntable1;  

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


分享文章:ADO.NET程序設(shè)計(jì)實(shí)現(xiàn)獲取數(shù)據(jù)庫(kù)架構(gòu)信息
本文網(wǎng)址:http://m.5511xx.com/article/cdedgdc.html