2012-12-14 31 views
2

數據庫中獲取所有表的名字我使用VS2010 ,.NET 4.0,MS SQL SERVER 2008與C#

我想我知道如何從數據庫中獲得所有的表名。但是我錯了。通過表名,我可以獲得視圖名稱。但是當我爲Views創作時,我只能看到Views。我不知道爲什麼會發生這種情況。

這裏是我的代碼,我曾嘗試:

public DataTable getAllTables(string serverName, string dbName, string authenticationType, string Login, string pass) 
    { 
     using (SqlConnection sqlConn = Return_Conn(serverName, dbName, authenticationType, Login, pass)) 
     { 
      sqlConn.Open(); 
      DataTable dt = sqlConn.GetSchema("Tables"); 
      DataTable dt1 = new DataTable(); 

      string[] column = { "TABLE_NAME" }; 
      dt1 = dt.DefaultView.ToTable("dd", false, column); 

      sqlConn.Close(); 
      return dt1; 
     } 
    } 

    public DataTable getAllViews(string serverName, string dbName, string authenticationType, string Login, string pass) 
    { 
     using (SqlConnection sqlConn = Return_Conn(serverName, dbName, authenticationType, Login, pass)) 
     { 
      sqlConn.Open(); 
      DataTable dt = sqlConn.GetSchema("Views"); 
      DataTable dt1 = new DataTable(); 

      string[] column = { "TABLE_NAME" }; 
      dt1 = dt.DefaultView.ToTable("dd", false, column); 

      sqlConn.Close(); 
      return dt1; 
     } 
    } 

DataTable dt = sqlConn.GetSchema("Tables");這條線,DT包含了所有的表與視圖一起。在DT,TABLE_TYPE查看都呈現「查看」 和,顯示「基本表」

DataTable dt = sqlConn.GetSchema("Views");這條線,DT只包含的意見。

這裏有什麼問題?我怎麼能解決這個問題?

+0

可能重複查詢 [?如何獲得一個MSSQL數據庫內的所有表(http://stackoverflow.com/questions/10517991 /如何對GET-全表-的-A-MSSQL數據庫) – spajce

+0

@spajce我不要求不同的解決方案。我在問如何解決我寫的內容。它不在重複列表中。 –

+0

好..所以,有一個簡單的解決方案,從鏈接:) – spajce

回答

0

我會像這樣運行,而不是一個的getSchema查詢:

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_TYPE='BASE TABLE' 
+0

謝謝,我知道這件事。但是我寫的是什麼錯? –