从 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# 中某些值相关的值的主要内容,如果未能解决你的问题,请参考以下文章
从每个类别中至少选择一个,但不能超过一个,并且不能与另一列重复