【发布时间】:2014-04-18 07:07:00
【问题描述】:
我的 sqlce 中有一个表,我想在 DataGridView 中显示 3 列。
三列是数字、时间、价格,我已将 sqlce 表中的所有数据加载到DataTable。现在如何在DataGridView中显示呢?
【问题讨论】:
-
通过发布您尝试过的代码及其不工作的地方来展示您的研究成果。
标签: c# datagridview datagrid datatable
我的 sqlce 中有一个表,我想在 DataGridView 中显示 3 列。
三列是数字、时间、价格,我已将 sqlce 表中的所有数据加载到DataTable。现在如何在DataGridView中显示呢?
【问题讨论】:
标签: c# datagridview datagrid datatable
此代码将帮助您了解如何将数据表填充到 sql 数据库。
在datagridview中添加列:
dt.Columns.Add("Number",typeof(int));
dt.Columns.Add("Time",typeof(String));
dt.Columns.Add("Price",typeof(String));
但是如果直接填写datatable表单数据库就不需要在datatable中添加列了。
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();
}
【讨论】:
DataPropertyName 属性将列与DataTable 绑定。
DataTable 中的数据绑定到DataGridView。为此,重要的一点是如何告诉DataGridView 绑定DataTable 中的哪一列。那是通过DataGridViewColumn 的DataPropertyName 属性。没有这个,数据将不会显示。
DataGridViewColumn 绑定DataColumn 中的哪个DatatTable。请参阅DataPropertyName 的文档。会很清楚的。
如果您的 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
【讨论】: