方法1 對數據庫文件進行特殊的處理:
打開數據庫文件
工具->選項
然後把系統對象和隱藏對象都設置出來:
這樣你就會看到系統表了:
MSysObjects表中就是類似SQLServer裡的系統表,裡面記錄了所有的用戶表,視圖等一些信息,只用查詢它就行了。
SQL語句:"select [Name] as [TABLE_NAME],[Flags],[Type] from [MSysObjects] where [Flags]=0 and [Type]=1";
然而默認情況下,你的應用程序是沒有權限來讀取這張表的(是的,讀的權限都沒有)。
因此,在讀這張表之前要先設置權限:
工具->安全->用戶與組的權限
將讀權限勾上就行了。
然而,更多時候我們並不能保證所有的數據文件對MSysObjects都有讀權限,而且每次設置一下也很麻煩。
方法2:
利用OLEDB的系統API來解決這個問題,當然.Net的OleDBConnection已經為我們封裝好了。
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});
一句就可以搞定了。當然,同樣的方法也可以讀取視圖。 詳細的信息請查看MSDN。