0

我有一个 Winform 应用程序,我希望用户能够针对产品列表输入一些库存更正,这反过来将为每个更正创建一个数据库记录。

使用组合框,我得到了它,因此必须依次选择每个项目。它工作得很好,但不是很用户友好。理想情况下,我想要一个带有空列的产品列表以输入更正,单击提交并完成。

我看着使用datagrdiview。我可以生成产品列表,但我不知道如何创建“条目列”。

关于走的路有什么建议吗?

干杯,麻木

编辑

这是我想在不显示代码的情况下尽可能清楚地做的模拟...

我想要的样本

4

1 回答 1

1

如果您想使用“提交”按钮来保存新的库存更正,那么方法将是:

- 使用产品名称和空单元格创建数据网格视图以进行库存校正

-点击“提交”按钮后读取“更正”列值,如果值存在更新数据库...</p>

在这里你可以怎么做:

在设计器中创建一个datagridview ,然后用设计器在这个datagridview中dgvProductCorrections创建两列 。将此(或您的)列名称放在 Column .Name 属性中dgvProductCorrection_ProductdgvProductCorrection_Correction

然后,我假设您有一个类 Product,其中存在属性 .Name,您需要将此属性的名称(在我的示例中为 Name)放在列的 .DataProperty

以上可以通过设计器或代码(构造器)完成

在 datagridview 中添加列表产品List<Product> lstProducts;将如下所示:

dgvProductCorrections.DataSource = lstProducts; //(this may be in Form_Load)

在添加列表之前请记住将 datagridview 属性设置AutoGenerateColumnsFalse

dgvProductCorrections.AutoGenerateColumns = false;

Button_Click提交按钮的事件处理程序中放置一个代码,您可以在其中循环遍历所有行并读取校正值。在您可以使用这些值更新数据库之后

//Code in Button_Click
{   
    foreach(DataGridVewRow dgvr in dgvProductCorrections.Rows)
    {
        Decimal fCorrection;
        //Check if value exists and it can be used. Add own other checks
        if(dgvr.Cells(this. dgvProductCorrection_Correction.Name).Value != null &&  Decimal.TryParse(dgvr.Cells(this.dgvProductCorrection_Correction.Name).Value.ToString(), fCorrection) = True)
        {
         //Here you can put a update code, or save a correction in list and then update all by one update call
        }
    }
}
于 2013-03-12T17:34:49.090 回答