2012-12-14 3 views
2

의 모든 테이블 이름을 가져오고 있습니다. VS2010, .Net 4.0, MS SQL Server 2008을 사용하고 있습니다.데이터베이스에서 C#

나는 데이터베이스에서 모든 테이블 이름을 얻는 방법을 알고 있다고 생각했습니다. 그러나 나는 틀렸다. 테이블 이름을 사용하면 View 이름뿐만 아니라. 그러나 조회수에 대해 수행 할 때 조회수 만 얻습니다. 왜 이런 일이 일어나는지 모르겠습니다.

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는 전용 뷰가 포함되어 있습니다.

여기에 무슨 문제가 있습니까? 어떻게 해결할 수 있습니까?

나는이 아닌 GetSchema 같은 쿼리를 실행하는 것
+0

가능한 중복 쿼리 [?를 MSSQL 데이터베이스의 모든 테이블을 얻는 방법] (http://stackoverflow.com/questions/10517991/how-to-get-all-tables-of-a-mssql-database) – spajce

+0

@spajce 나는 다른 해결책을 요구하지 않고있다. 내가 쓴 것을 어떻게 풀어 낼지 묻는다. 중복 목록에 없습니다. –

+0

ok .. 링크에서 간단한 해결책이 있습니다 :) – spajce

답변

0

:

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

감사합니다. 하지만 내가 쓴 것이 무엇이 잘못 되었습니까? –

관련 문제