从 Datagridview 获取与另一列 c# 中某些值相关的值

Posted

技术标签:

【中文标题】从 Datagridview 获取与另一列 c# 中某些值相关的值【英文标题】:Get Values from Datagridview related to to certain values in another column c# 【发布时间】:2017-02-21 00:01:32 【问题描述】:

所以这是我的问题。我编码的时间不长,我已经在这个问题上拖了 2 天了,但无法得到有效的答案......

Form1 有一个包含 3 列和多行数据的 datagridview。 如果我按下 Form1 上的按钮,我需要它填充 column1 中所有在 column[2] 中具有特定值的值,然后将其显示在 Form2 上的文本框中。

例子:

Datagrid example

因此,如果我单击一个按钮,我想提取 car1 的所有金额并在 form2 的文本框中显示总数。

Form2 obj = new Form2();
public void button4_Click(object sender, EventArgs e)
    
String searchValue = "Car1";
        int rowIndex = 1;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        
            if (row.Cells[2].Value.ToString().Equals(searchValue))
            
                rowIndex = row.Index;
                obj.Controls["TextBox1"].Text = dataGridView1.Rows[rowIndex].Selected.ToString();
                obj.Show();

            
            else
            
               break;
            


        
    

我只是在我的文本框中得到答案“真”

我希望这是有道理的

提前致谢

【问题讨论】:

您需要展示到目前为止您已经尝试过的内容以及您遇到的问题。到目前为止,您的问题是“请为我编写所有代码”,这将被关闭。如果你能做到这一点,你更有可能得到一些对你有帮助的答案。 我可以帮忙,但不知道什么是确定的价值?那么如果 column[1] 的行数大于 column[2] 行数?类似的东西? 嗯,好的。我将添加我最后使用的代码,让我最接近我想要的位置。 【参考方案1】:

为什么要打破foreach 循环。据我了解,您想要所有其他数量的 Car1。正确的?看看这个:

    Form2 obj = new Form2();
    public void button4_Click(object sender, EventArgs e)
        
            String searchValue = "Car1";
            int amount = 0;
             foreach (DataGridViewRow row in dataGridView1.Rows)
           
                 if(row.Cells["Type"].Value.ToString().Equals(searchValue)
                 
                     amount+ = Convert.ToInt32(row.Cells["Amount"].Value.ToString())
                 
              

            if(amount > 0 )
           
              obj.Controls["TextBox1"].Text = amount.ToString();
           
           else
           
             obj.Controls["TextBox1"].Text = "No car found!";  
           

           obj.Show();
        

您还需要控制 Amount 是否为数字。

【讨论】:

谢谢。这有很大帮助。我现在也知道我在哪里犯了错误 @Chris 很高兴为您提供帮助

以上是关于从 Datagridview 获取与另一列 c# 中某些值相关的值的主要内容,如果未能解决你的问题,请参考以下文章

C#如何获取datagridview最后一行第一列数据的值

Datagridview_2 组合框值在 C# 中无效

从每个类别中至少选择一个,但不能超过一个,并且不能与另一列重复

c#如何获取datagridview中的第一列的值,注意不是选中行

c# datagridview 取消第一列

显示一列与另一列相比的缺失值