C# 如何操作DataGridView框中的数据?

C# 如何操作DataGridView框中的数据?,c#,datagridview,C#,Datagridview,在没有sql或其他表的情况下操作数据是很困难的 this.dataGridView1.Rows.Add("Room: " + label40.Text, type, textBox1.Text + "m", textBox2.Text + "m", label10.Text, label9.Text, "$" + label38.Text); lblTotalPrice.Text=Convert.ToString( dataGridView1.Rows.Cast() .Select(x=>I

在没有sql或其他表的情况下操作数据是很困难的

this.dataGridView1.Rows.Add("Room: " + label40.Text, type, textBox1.Text + "m", textBox2.Text + "m", label10.Text, label9.Text, "$" + label38.Text);

lblTotalPrice.Text=Convert.ToString(
dataGridView1.Rows.Cast()
.Select(x=>Int32.Parse(x.Cells[6].ToString(),
???))
.Sum());

错误

这未经测试,但应能正常工作:

lblTotalPrice.Text = Convert.ToString(
    dataGridView1.Rows.Cast<DataGridViewRow>()
                 .Select(x => Int32.Parse(x.Cells[6].Value.ToString(),
                                          NumberStyles.AllowCurrencySymbol))
                 .Sum());
lblTotalPrice.Text=Convert.ToString(
dataGridView1.Rows.Cast()
.Select(x=>Int32.Parse(x.Cells[6].Value.ToString(),
数字样式。AllowCurrencySymbol)
.Sum());
它获取
数据网格的第6列,即
成本
,然后将字符串值转换回数字并相加


根据需要执行此代码以更新总计,例如,当您单击“添加新房间”按钮时。

处理
DataGridView的事件
行加载

如上所述,在添加新行时调用事件(不引用以编程方式添加的行与通过数据绑定添加的行之间的差异,因此在您的情况下应该可以工作);对于每一个新行,将所有值相加,然后用总计填充框

lblTotalPrice.Text = Convert.ToString(
    dataGridView1.Rows.Cast<DataGridViewRow>()
                 .Select(x => Int32.Parse(x.Cells[6].Value.ToString(),
                                          NumberStyles.AllowCurrencySymbol))
                 .Sum());