【问题标题】:Programatically adding a row to a DataGridView that is bound to a datasource and already has columns以编程方式将行添加到绑定到数据源且已具有列的 DataGridView
【发布时间】:2011-01-25 05:05:41
【问题描述】:

我整个晚上都在尝试以编程方式向我的 DataGridView 添加行,但我似乎无法让它工作我尝试了很多不同的方法,但它们似乎都没有工作。

我没有收到任何错误,一切看起来都很好。

我有一个 WinForm,我添加了一个 DataGridView,将一个 DataSource 绑定到它(来自 SQL 2008 连接的表)。

数据显示在其中,一切都很好,但我想在显示之前处理数据,所以我想自己以编程方式添加行。

到目前为止,这是我尝试过的:

    string[] rowArray = new string[]{ "Test", "Test", "Test" };
    dataGridView.Rows.Add(rowArray[0]);

-

    dataGridView.Rows.Add();
    int newRowIndex = dataGridView.RowCount - 1;
    DataGridViewRow newRow = dataGridView.Rows[newRowIndex];

    newRow.Cells["PurchaseOrderId"].Value = "Test";
    newRow.Cells["SupplierId"].Value = "Test";
    newRow.Cells["State"].Value = "Test";

-

    DataRow newRow = purchaseOrders.NewRow(); // purchaseOrders = this.purchaseOrderManagerDataSet.PurchaseOrders

    newRow["PurchaseOrderId"] = "Test";
    newRow["SupplierId"] = "Test";
    newRow["State"] = "Test";

    dataGridView.Rows.Add(newRow);

它们都没有向 DataGridView 添加任何内容。

知道我做错了什么吗?

非常感谢!

【问题讨论】:

    标签: winforms datagridview


    【解决方案1】:

    您应该修改数据源对象。

    例如,如果您有一个BindingList,您只需将一个新对象添加到列表中,它就会显示在DataGridView 中。

    【讨论】:

    • 好吧...我有点迷失在这一切中,我正在一次学习所有这些,所以我不知道什么是“BindingList”。你有什么例子吗?谢谢!
    • @Tom:在 MSDN 或 Google 上阅读一些博客文章。对于数据绑定列表来说真的很方便。
    • 哦,我读了一点,它们看起来很有用。我还没有任何名为 PurchaseOrder 的对象(我的表的名称)。有没有办法自动生成它,或者我必须添加一个新文件并自己制作?非常感谢您帮助我,非常感谢:)
    • AFAIK,你必须自己做。只需添加数据对象,您可能需要一个构造函数。
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多