C# 将数据库中的特定值乘以textbox值时,无法将参数值从字符串转换为Int32
在这段代码下面,我遇到了那个错误。在我的数据库employee_产品中,我有一个列名Unitcost和Quantity,这两个列都是int-dbdatatype。我不知道将其转换为int是否正确,因为它在我的数据库中已经是int类型。产品结果是我的另一个数据库,我想将我的雇员产品数据库中我的成本值乘以我的数量文本框,并将结果传递给总计,并在总计列中显示我的产品结果。请帮助我在代码中构造正确的方法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;
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);
解决了的!谢谢您: