OleDbSchemaGuid的應用

   string ConStr;
   ConStr = "Provider=SQLOLEDB;data source=127.0.0.1;uid=sa;pwd=;database=KWDataBase";
   DataTable STable;
   DataTable SDTable;
   DataTable SFTypeTable;
   OleDbConnection OleDbCon = new OleDbConnection();
   OleDbCon.ConnectionString = ConStr;   
   OleDbCon.Open();
   OleDbCommand OleDbCmd = new OleDbCommand(Sql,OleDbCon);
   //Object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","TABLE_TYPE"}
   STable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new Object[]{"KWDataBase","dbo","member",null}); 
   //Object[]{"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","COLUMN_NAME"}
   SDTable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,new Object[]{"KWDataBase","dbo","member",null});
   SFTypeTable = OleDbCon.GetOleDbSchemaTable(OleDbSchemaGuid.Provider_Types,new Object[]{}); 
   this.DataGrid1.DataSource = STable;
   this.DataGrid1.DataBind();
   this.DataGrid2.DataSource = SDTable;
   this.DataGrid2.DataBind();
   this.DataGrid3.DataSource = SFTypeTable;
   this.DataGrid3.DataBind();
   OleDbCon.Close();
Sql Server 取數據庫結構不用向以上方法哪樣麻煩,只用一條 SQL 語句就可以了

"select c.Name,b.name,a.* from dbo.syscolumns a
inner join dbo.sysobjects b on a.ID=b.ID
inner join dbo.systypes c on a.XTYPE=c.XTYPE
where b.xtype='U'"

但如果取 Access 數據庫表結構也只能用OleDbSchemaGuid了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章