C# 将数据库中的特定值乘以textbox值时,无法将参数值从字符串转换为Int32

C# 将数据库中的特定值乘以textbox值时,无法将参数值从字符串转换为Int32,c#,sql-server,winforms,C#,Sql Server,Winforms,在这段代码下面,我遇到了那个错误。在我的数据库employee_产品中,我有一个列名Unitcost和Quantity,这两个列都是int-dbdatatype。我不知道将其转换为int是否正确,因为它在我的数据库中已经是int类型。产品结果是我的另一个数据库,我想将我的雇员产品数据库中我的成本值乘以我的数量文本框,并将结果传递给总计,并在总计列中显示我的产品结果。请帮助我在代码中构造正确的方法 int Total; int Cost; int Quantity; byte[] data;

在这段代码下面,我遇到了那个错误。在我的数据库employee_产品中,我有一个列名Unitcost和Quantity,这两个列都是int-dbdatatype。我不知道将其转换为int是否正确,因为它在我的数据库中已经是int类型。产品结果是我的另一个数据库,我想将我的雇员产品数据库中我的成本值乘以我的数量文本框,并将结果传递给总计,并在总计列中显示我的产品结果。请帮助我在代码中构造正确的方法

int Total;
int Cost;
int Quantity;
byte[] data;


// This is the code where i get my quantity on my quantity textbox
public void DisplayQuantity()
    {
        using (var con = SQLConnection.GetConnection())
        {
            using (var select = new SqlCommand("Select * from employee_product where Codeitem = @Codeitem ", con))
            {
                select.Parameters.Add("@Codeitem", SqlDbType.VarChar).Value = _view.txt_code.Text;
                using (var reader = select.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        txt_quantity.Text = reader["Quantity"].ToString();
                    }
                }
            }
        }
    }

private void btn_ok_Click(object sender, EventArgs e)
    {
        using (var con = SQLConnection.GetConnection())
        {
            using (var selects = new SqlCommand("Select * from employee_product where Codeitem =@Codeitem ", con))
            {
                selects.Parameters.Add("@Codeitem", SqlDbType.VarChar).Value = _view.txt_code.Text;
                using (var reader = selects.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        data = (byte[])reader["Image"];
                        Cost = Convert.ToInt32(reader["Unitcost"]);
                        Convert.ToInt32(Total);
                        Quantity = Convert.ToInt32(txt_quantity.Text);
                        Total = Quantity * Cost;
                    }
                }                    
            }
            using (var command = new SqlCommand("Insert into product_result (Date, Image, Code, Name, Price, Discount, Quantity, Total) Values (@Date, @Image, @Code, @Name, @Price, @Discount, @Quantity, @Total)", con))
            {

                command.Parameters.Add("@Date", SqlDbType.VarChar).Value = date;
                command.Parameters.Add("@Image", SqlDbType.VarBinary).Value = data;
                command.Parameters.Add("@Code", SqlDbType.VarChar).Value = _view.txt_code.Text.Trim();
                command.Parameters.Add("@Name", SqlDbType.VarChar).Value = _view.txt_name.Text.Trim();
                command.Parameters.Add("@Price", SqlDbType.VarChar).Value = _view.txt_price.Text;
                command.Parameters.Add("@Discount", SqlDbType.Int).Value = txt_discount.Text;
                command.Parameters.Add("@Quantity", SqlDbType.Int).Value = txt_quantity.Text;
                command.Parameters.Add("@Total", SqlDbType.Int).Value = Total;

                command.ExecuteNonQuery();
            }
无法将参数值从字符串转换为Int32表示您正在将字符串值传递给设置为SqlDbType.Int的SqlParameter参数。如果这些值来自textbox的文本属性(字符串属性),请确保在赋值之前先使用convert.ToInt32、int.Parse或int.TryParse转换它们:

 command.Parameters.Add("@Discount", SqlDbType.Int).Value = Convert.ToInt32(txt_discount.Text);
 command.Parameters.Add("@Quantity", SqlDbType.Int).Value = Convert.ToInt32(txt_quantity.Text);

解决了的!谢谢您: