在标签上加载总和

时间:2016-05-02 21:58:30

标签: c# mysql asp.net

我正在尝试在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);

2 个答案:

答案 0 :(得分:1)

这意味着lblPriceToBe.Text中的值不能转换为double。它可能是空的或任何其他我们无法转换为双倍的值。在这种特殊情况下,double.TryParse将帮助您确定输入是否可转换,如果转换成功,它还会为您提供转换结果(否则它将为0.0);所以你想做的是:

protected void btnCalculate_Click(object sender, EventArgs e)
{
    double Quantity,Price,sum;
    bool canProcess=true;
    if(!double.TryParse(txtQuantity.Text,out Quantity)
    {
      // conversion failed
      lblPriceToBe.Text="Invalid quantity"
      canProcess=false;
    }
    if(!double.TryParse(lblPriceToBe.Text,out Price)
    {
      // conversion failed
      lblPriceToBe.Text="Invalid Price"
      canProcess=false;
    }
    if(canProcess)
    {
    sum = Quantity * Price;
    //Output
    lblPriceToBe.Text=sum.ToString();
    }

}

答案 1 :(得分:0)

在您的Sql / mysql服务器上运行查询并检查是否返回一个值,如果它确实尝试

在类的公共上声明这些变量

public double Quantity;
public double Price;
public double Sum;

然后通过查询给出它们的值:

 Quantity = Convert.ToDouble(rdr.GetValue("columns name"));
 Price = Convert.ToDouble(rdr.GetValue("columns name"));
 Sum = Quantity * Price ;

然后在文本框中使用它们