【问题标题】:How to add data to DataGridView?如何向 DataGridView 添加数据?
【发布时间】:2014-04-18 07:07:00
【问题描述】:

我的 sqlce 中有一个表,我想在 DataGridView 中显示 3 列。 三列是数字、时间、价格,我已将 sqlce 表中的所有数据加载到DataTable。现在如何在DataGridView中显示呢?

【问题讨论】:

  • 通过发布您尝试过的代码及其不工作的地方来展示您的研究成果。

标签: c# datagridview datagrid datatable


【解决方案1】:

此代码将帮助您了解如何将数据表填充到 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 绑定。
  • @Junaith :对不起,我只是给用户一个例子,但在这种情况下,我们不需要在数据表中添加列。据阙。 ,用户只想从数据库中填充数据表并显示它。如果我错了,请告诉我。
  • DataTable 是使用适配器填充还是手动填充都没有关系。 OP 想要将DataTable 中的数据绑定到DataGridView。为此,重要的一点是如何告诉DataGridView 绑定DataTable 中的哪一列。那是通过DataGridViewColumnDataPropertyName 属性。没有这个,数据将不会显示。
  • @Junaith:这很简单。如果您不希望整个数据库绑定到数据表,那么您需要更改 sql 查询。前任。从表名中选择 Number,Price 然后从 SqlDataAdapter 中填充数据表。
  • 即使您手动创建列,您也必须告诉每个DataGridViewColumn 绑定DataColumn 中的哪个DatatTable。请参阅DataPropertyName 的文档。会很清楚的。
【解决方案2】:

如果您的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    相关资源
    最近更新 更多