2014-06-22 40 views
1

我有一个加载表名称的DataGridView。获取表在构造函数中被调用。我有9个表存储在.sdf数据库中。当它加载时,我将所有表格至少列出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 a 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); 
      } 
     } 
    } 
}