【发布时间】:2016-05-02 21:58:29
【问题描述】:
我正在尝试在 lblPriceToBe 上加载 txtQuantity.Text 和 lblPice.Text 的总和。我正在使用此代码加载我的 lblprice。
private void GetData()
{
SqlConnection connection = new SqlConnection("Data Source = localhost\\SQLEXPRESS;Initial Catalog = MejOnlineManagementDB00;Integrated Security=True;");
connection.Open();
SqlCommand sqlCmd = new SqlCommand(@"SELECT price,productType
FROM Products3
WHERE productName='" + DropDownList1.SelectedItem.Value.ToString() + "'", connection);
SqlDataReader rdr = sqlCmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
lblPrice.Text = rdr.GetValue(0).ToString(); // if price is string use GetString(0))
lblProdType.Text = rdr.GetValue(1).ToString();
}
}
connection.Close();
//DropDownList End of Area
}
在我得到 mysql 数据库的价格后,我将它与 txtQuantity 相乘
protected void btnCalculate_Click(object sender, EventArgs e)
{
double Quantity = Convert.ToDouble(txtQuantity.Text);
double Price = Convert.ToDouble(lblPrice.Text);
double sum;
sum = Quantity * Price;
//Output
sum = Convert.ToDouble(lblPriceToBe.Text);
}
然后我得到这个错误
在 mscorlib.dll 中出现“System.FormatException”类型的异常,但未在用户代码中处理
附加信息:输入字符串的格式不正确。
这段代码的那一点:
sum = Convert.ToDouble(lblPriceToBe.Text);
【问题讨论】:
-
你检查过“txtQuantity”的值吗?这大概就是它失败的原因。如果不确定输入值是否始终正确,也可以尝试使用
double.TryParse(),它使用一个ref值进行更新,如果解析成功则返回一个布尔值。 -
@pkeuter 让我试试。
-
@pkeuter 我收到此错误“方法 'Try Parse' 没有重载需要 1 个参数”。
-
查看函数的签名。您需要一个额外的参数,因为 tryparse 返回一个布尔值。查看@un-lucky 的答案,他用一段代码给出了相同的答案。这应该可以帮助你:-)