2014-04-26 30 views
-1

我想更新我的库存数量,保持以前的库存状态。我需要根据内部或外部交易增加或减少以前的数据。我没有获得当前库存更新的股票。 //这是问题段的开始我想更新我的库存数量,保持以前的数量。

 SqlCommand cmd2 = new SqlCommand("select stock from currentstock where [email protected]", con); 
     con.Open(); 
     int x=0; 
     cmd2.Parameters.AddWithValue("@a",comboBox2.SelectedItem.ToString()); 
     SqlDataReader dr = cmd2.ExecuteReader(); 
     if (dr.Read()) 
     { 
      x = dr.GetInt16(2); 
     } 
     if (radioButton1.Checked == true) 
     { 
      x = x + Convert.ToInt16(textBox1.Text); 
     } 
     else if (radioButton2.Checked == true) 
     { 
      x = x - Convert.ToInt16(textBox2.Text); 
     } 
      con.Close(); 



     SqlCommand cmd1 = new SqlCommand("update currentstock set [email protected] where [email protected]",con); 
     con.Open(); 
     cmd1.Parameters.AddWithValue("@a", x); 
     cmd1.Parameters.AddWithValue("@b", comboBox2.SelectedItem.ToString()); 
     cmd1.ExecuteNonQuery(); 
     con.Close(); 

//这是问题段结束

+0

那么问题出现在哪里? –

+0

x = x + Convert.ToInt16(textBox1.Text); x = x - Convert.ToInt16(textBox2.Text); 我认为这两个陈述没有得到执行。 – user3275519

+0

请解释你在哪条线上面临的问题以及出现什么样的错误或异常, –

回答

0

首先请说你的SQL表时从用户输入不直接使用价值(见SQL Injection) 。使用存储过程。

我期望您从组合框返回的值不是表的itemname列中的有效值。

+0

这是一个有效的值,调试程序没有显示任何错误。组合框将返回一个字符串格式的值,并使用项目名称作为SQL表中的nvarchar类型。 – user3275519