2014-03-13 144 views
-4

我在我的sqlce中有一张桌子,我想在DataGridView中显示3列。 这三列是数字,时间,价格,我已经将所有数据从sqlce表加载到DataTable。现在如何在DataGridView中显示它?如何将数据添加到DataGridView?

+0

显示张贴您已经尝试了代码,它不工作的地方你的研究工作。 – Junaith

回答

0

此代码将帮助您理解,如何将数据表填充到sql数据库。

在DataGridView中添加列:

 dt.Columns.Add("Number",typeof(int)); 
     dt.Columns.Add("Time",typeof(String)); 
     dt.Columns.Add("Price",typeof(String)); 

但如果直接填写数据表形式的数据库,这样你就不需要在数据表中添加列。

 DataTable dt = new DataTable(); 

     SqlConnection InsertCon = new SqlConnection(); 
     InsertCon.ConnectionString = Connection_String; 

     InsertCon.Open(); 

     try 
     {  
      SqlCommand com = new SqlCommand("Sql Query"); 
      com.Connection = InsertCon; 

      com.ExecuteNonQuery(); 


      SqlDataAdapter sda = new SqlDataAdapter(com); 
      sda.Fill(dt); 

      dataGridView1.DataSource = dt; 

     } 
     catch (Exception e1) 
     { 
      MessageBox.Show(e1.ToString()); 
     } 
     finally 
     { 
      InsertCon.Close(); 
     } 
+1

除非使用列的DataPropertyName属性将列与'DataTable'绑定,否则这将不起作用。 – Junaith

+0

@Junaith:对不起,我只是举例给用户,但在这种情况下,我们不需要在数据表中添加列。根据que。 ,用户只是想从数据库中填充数据表并显示它。如果我错了,让我知道。 –

+0

DataTable使用适配器填充或手动无关紧要。 OP希望将数据从DataTable绑定到DataGridView。为此,重要的一点是如何告诉'DataGridView'在'DataTable'中绑定哪一列。这是通过'DataGridViewColumn'的'DataPropertyName'属性。没有这个数据将不会显示。 – Junaith

0

如果您DataTable只有这3列然后设置DataGridView.AutoGenerateColumns = true并设置DataGridView.DataSource=YourDataTable。当您设置DataSource时,DataGridView将自动生成列。

如果DataTable比你提到的其他三个附加列,那么你必须在DataGridView创建三列,并使用该列的DataPropertyName属性将它们绑定到DataTable。请参阅下面的示例代码,了解这种情况。

示例代码:

DataGridView.AutoGenerateColumns = false; 

DataGridViewTextColumn col1 = new DataGridViewTextColumn(); 
col1.HeaderText = "Number"; 
col1.Name="NumberColumn"; 
col1.DataPropertyName = // the column name in the datatable 
DataGridView.Columns.Add(col1); 

DataGridView.DataSource = YourDataTable 
相关问题