【发布时间】:2016-02-11 07:08:25
【问题描述】:
我有一个网格视图,用户只会向它添加数据。但数据并未保存到数据库中。
我想要发生的是能够计算并显示所有数据量的总和。
我想把总和放到文本框中。所以,我所做的是
代码隐藏:
void gettotal()
{
foreach (GridViewRow row in GridView1.Rows)
{
float GTotal = 0f;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
string Amount = GridView1.Rows[row.RowIndex].Cells[4].Text;
GTotal += Convert.ToSingle(Amount);
}
txtSubTotal.Text = GTotal.ToString();
}
}
protected void AddProduct_Click(object sender, EventArgs e)
{
GetPO();
gettotal();
AddNewRecordRowToGrid();
}
无论何时点击Button Add Product,它都会添加到gridview中。
我尝试了代码并得到一个错误
输入字符串的格式不正确。
第 375 行:GTotal += Convert.ToSingle(Amount);
编辑 #1
附加:我正在尝试获取点击 btn 添加产品时的金额。这对我找到金额的价值有用吗?
所以我把代码改成了
string Amount = GridView1.Rows[row.RowIndex].Cells[4].Text;
//string Amount = GridView1.Rows[row.RowIndex].Cells[4].Text;
GTotal += string.IsNullOrEmpty(Amount) ? 0 : Convert.ToInt16(Amount);`
还是说空
【问题讨论】:
-
出现错误时的金额是多少?
-
你确定这就是它所说的吗?因为在您的代码中有
Convert.ToInt16,但您的错误在Convert.ToSingle。 -
您的代码中的
GTotal += Convert.ToSingle在哪里?如果您在代码中的任何地方使用它,请确保您传递了正确的CultureInfo。 Convert.ToSingle 是文化敏感的。 -
Convert.ToInt32和Convert.ToSingle我的错误出现了同样的错误 -
@Adil 哦,是的.. 所以我将代码更改为
String Amount = (GridView1.Rows[i].FindControl("Amount") as Label).Text;那里出现错误说null的金额