C#獲取數據庫表信息,列信息

獲取表的信息:html

conn.Open();

string[] restrictions = new string[4];

restrictions[1] = "dbo";      

DataTable table = conn.GetSchema("Tables", restrictions);     

conn.Close();

  

返回的table是表的全部信息,而不單單是名字,能夠經過以下語句查看這些信息:數據庫

foreach (System.Data.DataRow row in table.Rows)

{

foreach (System.Data.DataColumn col in table.Columns)

     {

         Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);

     }

}

  

要獲取指定表的信息,關鍵是要設置數組restrictions的值。對於表而言,這個數組有以下的含義:數組

Restriction[0]表示表所在的Catalog架構

Restriction[1]表示表的全部者spa

Restriction[2]表示表的名字rest

Restriction[3]表示表的類型:code

上面的例子就獲取了全部dbo擁有的表的信息。若是要獲取全部的用戶表,而非系統表,可用以下語句:htm

conn.Open();

string[] restrictions = new string[4];

restrictions[3] = 「BASE TABLE";      

DataTable table = conn.GetSchema("Tables", restrictions);     

conn.Close();

  

 

獲取列的信息:blog

conn.Open();

string[] restrictions = new string[4];

restrictions[1] = "dbo";      

DataTable table = conn.GetSchema("Columns", restrictions);     

conn.Close();

  

與獲取表的代碼很相似,只是GetSchema的第一個參數不一樣。一樣,返回結果取決於restriction的值。此時,get

Restriction[0]表示列所在的Catalog

Restriction[1]表示列的全部者

Restriction[2]表示列所在的表的名字

Restriction[3]表示列名

例如:

// restriction string array

string[] res = new string[4];

 

// dbo擁有的全部表的全部列的信息

res[1] = "dbo";

DataTable t1 = conn.GetSchema("Columns", res);

 

// 任意owner/schema所擁有的一個叫authors的表的列信息

res[2] = "authors";

DataTable t2 = conn.GetSchema("Columns", res);

 

//任意owner/schema所擁有的一個叫authors的表的列name的信息

res[2] = "authors";  res[3] = "name ";

DataTable t3 = conn.GetSchema("Columns", res);

 

//任意owner/schema任意表中的一個列名是name的列的信息。

res[3] = "name";

DataTable t4 = conn.GetSchema("Columns", res);

 

 

 

獲取數據庫的其它信息均可以使用GetSchema,只是第一個參數不一樣。這個參數在不一樣的數據庫有差別:

1、在SQL Server中,能夠獲取的架構集合以下:

·     Databases

·     ForeignKeys

·     Indexes

·     IndexColumns

·     Procedures

·     ProcedureParameters

·     Tables

·     Columns

·     Users

·     Views

·     ViewColumns

·     UserDefinedTypes

2、在Oracle中,能夠獲取的架構集合以下:

·     Columns

·     Indexes

·     IndexColumns

·     Procedures

·     Sequences

·     Synonyms

·     Tables

·     Users

·     Views

·     Functions

·     Packages

·     PackageBodies

·     Arguments

·     UniqueKeys

·     PrimaryKeys

·     ForeignKeys

·     ForeignKeyColumns

·     ProcedureParameters

原文地址:http://www.csharpwin.com/csharpspace/11457r2196.shtml     轉載請註明出處

相關文章
相關標籤/搜索