2014-06-22 8 views
1

테이블 이름을로드하는 DataGridView이 있습니다. 테이블 가져 오기는 생성자에서 호출됩니다. .sdf 데이터베이스에 9 개의 테이블이 저장되어 있습니다. 로드 할 때 모든 테이블이 적어도 81 번 나열됩니다. 각 테이블 이름 중 하나를 표시하려면 어떻게합니까? SqlCe 3.5C# 2010 Express을 사용하고 있습니다. 여기 내 코드는 다음과 같습니다.DataGridView에서 모든 SQL 테이블보기

DataTable dt = new DataTable(); 
private void getTables(object sender, EventArgs e) 
{ 
    dataGridView1.DataSource = dt; 
    string strConnect = @"Data Source=|DataDirectory|\LWADataBase.sdf"; 
    using (SqlCeConnection con = new SqlCeConnection(strConnect)) 
    { 
     con.Open(); 
     using (SqlCeCommand com = new SqlCeCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con)) 
     { 
      using (SqlCeDataReader reader = com.ExecuteReader()) 
      { 
       SqlCeDataAdapter da = new SqlCeDataAdapter(); 
       da.SelectCommand = com; 

       while (reader.Read()) 
       { 
        da.Fill(dt); 

       } 
      } 
     } 
    } 
} 

답변

-1

두 가지를 혼합하고 결합했습니다. 데이터를 검색하려면 각각이 아닌 DataAdapter또는, DataReader을 사용할 수 있습니다. 여기서 표를 채우기 위해 DataAdapter 만 있으면됩니다.

private void getTables(object sender, EventArgs e) 
{ 
    dataGridView1.DataSource = dt; 
    string strConnect = "Data Source=|DataDirectory|\\LWADataBase.sdf"; 
    using (SqlCeConnection con = new SqlCeConnection(strConnect)) { 
     con.Open(); 
     using (SqlCeCommand com = new SqlCeCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", con)) { 
      using (SqlCeDataAdapter da = new SqlCeDataAdapter()) { 
       da.SelectCommand = com; 
       da.Fill(dt); 
      } 
     } 
    } 
}