程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了DataGridViewRow 计数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决DataGridViewRow 计数?

开发过程中遇到DataGridViewRow 计数的问题如何解决?下面主要结合日常开发的经验,给出你关于DataGridViewRow 计数的解决方法建议,希望对你解决DataGridViewRow 计数有所启发或帮助;

逻辑

If `rows` > 0
 loop `rows` {
  if `row name value` equal `db name column`
   - increase value
  else
   // it adds new row if Db record is not already in grID vIEw
   - add new
 }
else
// Happen only once for first input (when there is no row)
- add new

这就是我试图构建的逻辑,但我有重复行问题(错误)

截图

DataGridViewRow 计数

代码

// database name column
String searchValue = dt.Rows[i]["name"].ToString();

if @R_618_9579@ctedItems.RowCount > 0)
{
    foreach (DataGrIDVIEwRow row in SELEctedItems.Rows)
    {
        if (row.Cells[1].Value.ToString().Equals(searchvalue))
        {
            // increase qty
            row.Cells["QtyH"].Value = Convert.ToInt32(row.Cells[2].value) + 1;
        }
        else
        {
            // Add new row
            SELEctedItems.Rows.Add(new String[] {
                dt.Rows[i]["ID"].ToString(),dt.Rows[i]["name"].ToString(),"1",dt.Rows[i]["SellPrice"].ToString(),(item.Price * item.Qty).ToString()
            });
        }
    }
}
else
{
    // Add new row
    SELEctedItems.Rows.Add(new String[] {
        dt.Rows[i]["ID"].ToString(),(item.Price * item.Qty).ToString()
    });
}

PS:SELEctedItems 是我的 DataGrIDVIEw

问题

  1. 如何修复重复的错误

解决方法

当 Lamp 不等于 Table 时,您的逻辑失败。当您循环 DataGridView 中的所有行时。

foreach (DataGridViewRow row in SELEctedItems.Rows)

因此,假设您的 SELEctedItems 已经有 2 行(Table 和 Lamp)。现在 searchValue 中有“灯”。您正在为 SELEctedItems 中的所有行循环。 对于第一次迭代,“Table”将不等于“Lamp”,将进入 else 并添加“Lamp”行。

逻辑应该如下:

    If `rows` > 0
{
 ismatched = false;
 loop `rows` {
  if `row Name value` equal `db Name column`
   - set ismatched to true
   - increase value
 }
if(!ismatched)
 {
   // it adds new row if Db record is not already in grid view
   - add new
 }
}
else
// Happen only once for first input (when there is no row)
- add new
,

缓存到一个临时列表(两个块):

// Add new row
        SELEctedItems.Rows.Add(new String[] {
            dt.Rows[i]["Id"].ToString(),dt.Rows[i]["Name"].ToString(),"1",dt.Rows[i]["SellPrice"].ToString(),(item.Price * item.Qty).ToString()
        });

放入临时列表并在最后添加新的一次(临时列表)!

If `rows` > 0
 loop `rows` {
  if `row Name value` equal `db Name column`
   - increase value
  else
   // it adds new row if Db record is not already in grid view
   - add new to temp list
 }
else
 // Happen only once for first input (when there is no row)
 - add new to temp list

at last:
 foreach (var value in tempList)
 {
   SELEctedItems.Rows.Add(new String[] {
                value.Id.ToString(),value.Name,value.SellPrice.ToString(),(value.Price * value..Qty).ToString()
            });
 }

只是一个假设 - 试一试!

问候

大佬总结

以上是大佬教程为你收集整理的DataGridViewRow 计数全部内容,希望文章能够帮你解决DataGridViewRow 计数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。