我有一个 Winform 应用程序,我希望用户能够针对产品列表输入一些库存更正,这反过来将为每个更正创建一个数据库记录。
使用组合框,我得到了它,因此必须依次选择每个项目。它工作得很好,但不是很用户友好。理想情况下,我想要一个带有空列的产品列表以输入更正,单击提交并完成。
我看着使用datagrdiview。我可以生成产品列表,但我不知道如何创建“条目列”。
关于走的路有什么建议吗?
干杯,麻木
编辑
这是我想在不显示代码的情况下尽可能清楚地做的模拟...
我有一个 Winform 应用程序,我希望用户能够针对产品列表输入一些库存更正,这反过来将为每个更正创建一个数据库记录。
使用组合框,我得到了它,因此必须依次选择每个项目。它工作得很好,但不是很用户友好。理想情况下,我想要一个带有空列的产品列表以输入更正,单击提交并完成。
我看着使用datagrdiview。我可以生成产品列表,但我不知道如何创建“条目列”。
关于走的路有什么建议吗?
干杯,麻木
编辑
这是我想在不显示代码的情况下尽可能清楚地做的模拟...
如果您想使用“提交”按钮来保存新的库存更正,那么方法将是:
- 使用产品名称和空单元格创建数据网格视图以进行库存校正
-点击“提交”按钮后读取“更正”列值,如果值存在更新数据库...</p>
在这里你可以怎么做:
在设计器中创建一个datagridview ,然后用设计器在这个datagridview中dgvProductCorrections
创建两列
。将此(或您的)列名称放在 Column .Name 属性中dgvProductCorrection_Product
dgvProductCorrection_Correction
然后,我假设您有一个类 Product,其中存在属性 .Name,您需要将此属性的名称(在我的示例中为 Name)放在列的 .DataProperty
以上可以通过设计器或代码(构造器)完成
在 datagridview 中添加列表产品List<Product> lstProducts;
将如下所示:
dgvProductCorrections.DataSource = lstProducts; //(this may be in Form_Load)
在添加列表之前请记住将 datagridview 属性设置AutoGenerateColumns
为False
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
}
}
}