在很多情況下我們需要將指定的數據庫中的所有表都列出來
1
SQLDMO是操作SQLServer的理想的方式
private void GetTabels_DMO(string strServerName
{
SQLDMO
//連接到服務器
Server
//對所有的數據庫遍歷
for(int i=
{
//判斷當前數據庫是否是指定數據庫
if(Server
{
//獲得指定數據庫
SQLDMO
//獲得指定數據庫中的所有表
for(int j=
{
MessageBox
}
}
}
}
2
adox是ado Extensions for DDL and Security
private void GetTables_ADOX()
{
//ADO的數據庫連接
ADODB
string ConnectionString=
cn
//操作ADOX的Catalog對象
CatalogClass cat=new CatalogClass();
cat
for(int i=
{
MessageBox
}
}
注意
3
在c#中我們首先會考慮使用來解決問題
public DataTable GetOleDbSchemaTable(
Guid schema
object[] restrictions);
參數
schema
OleDbSchemaGuid 的值之一
restrictions
限制值的 Object 數組
返回值
包含請求的架構信息的 DataTable
更多的信息大家可以查詢MSDN
private void GetTables_ADONET()
{
//處理OleDbConnection
string mailto:strConnectionString=@%
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn
//利用OleDbConnection的GetOleDbSchemaTable來獲得數據庫的結構
DataTable dt = cn
foreach (DataRow dr in dt
{
MessageBox
}
}
4
信息架構視圖是sql
private void GetTables_INFORMATION_SCHEMA()
{
//打開連接
string strConnectionString=System
sqlcn=new SqlConnection(strConnectionString);
sqlcn
//使用信息架構視圖
SqlCommand sqlcmd=new SqlCommand(
SqlDataReader dr=sqlcmd
while(dr
{
MessageBox
}
}
5
如果您的數據庫系統是sqlserver
private void GetTables_SystemTable()
{
//打開連接
string strConnectionString=System
sqlcn=new SqlConnection(strConnectionString);
sqlcn
//使用信息架構視圖
SqlCommand sqlcmd=new SqlCommand(
SqlDataReader dr=sqlcmd
while(dr
{
MessageBox
}
}
下面是
public void GetTables_StoredProcedure()
{
//處理OleDbConnection
string mailto:strConnectionString=@%
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn
//執行存儲過程
OleDbCommand cmd=new OleDbCommand(
cmd
OleDbDataReader dr=cmd
while(dr
{
MessageBox
}
}
From:http://tw.wingwit.com/Article/program/net/201311/13176.html