2016-03-28 25 views
0

Bir kutudan (cb_oname) bir öğeyi seçip siparişi girdiğimde program çöküyor ve executenonquery'de hata veriyor(). Aşağıda vurguladım Aslında bu kod gönderme sırasını tıkladığımda çalışır buton. cb_ocat (50)parametreli sorgu hatası C#

string query = @"Insert into dbo.orders 
(OrderType,OrderID,Product_Name, Product_category,Product_Quantity, 
Product_Price,Date,Discount,Order_Price,Phone) values 
(@txt_rdvalue,@txt_orderid,@cb_oname,@cb_ocat,@cb_oqty, 
@txt_oprice,@Date,@txt_disc,@txt_orderprice,@txt_call)"; 

if (string.IsNullOrWhiteSpace(txt_rdvalue.Text) || string.IsNullOrWhiteSpace(txt_orderid.Text) || string.IsNullOrWhiteSpace(cb_oname.Text) || string.IsNullOrWhiteSpace(cb_ocat.Text) || string.IsNullOrWhiteSpace(cb_oqty.Text) || string.IsNullOrWhiteSpace(txt_oprice.Text) || string.IsNullOrWhiteSpace(txt_disc.Text)) 
{ 
    lbl_incorrect.Visible = true; 
} 
else 
{ 
    using (SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=Pizza Mania;Integrated Security=True")) 
    { 
     using (SqlCommand cmd = new SqlCommand(query, con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = con; 
      con.Open(); 


      cmd.Parameters.Add(new SqlParameter("@Date", dateTimePicker1.Value.Date)); 
      cmd.Parameters.AddWithValue("@txt_rdvalue", txt_rdvalue.Text); 
      cmd.Parameters.AddWithValue("@txt_orderid", Convert.ToDouble(txt_orderid.Text)); 
      cmd.Parameters.AddWithValue("@cb_oname", cb_oname.SelectedItem); 
      cmd.Parameters.AddWithValue("@cb_ocat", cb_ocat.SelectedItem); 
      cmd.Parameters.AddWithValue("@cb_oqty", Convert.ToDouble(cb_oqty.SelectedItem)); 
      cmd.Parameters.AddWithValue("@txt_oprice", Convert.ToDouble((txt_oprice.Text))); 
      cmd.Parameters.AddWithValue("@txt_disc", Convert.ToDouble(txt_disc.Text)); 
      cmd.Parameters.AddWithValue("@txt_orderprice", txt_orderprice.Text); 
      cmd.Parameters.AddWithValue("@txt_call", txt_call.Text); 
      if (txt_call.Text == null) 
      { 
       cmd.Parameters.AddWithValue(@"txt_call", txt_call.Text == null); 
      } 



      cmd.ExecuteNonQuery();// here i am getting the error that the parameterized query cb_' expects the parameter cb_ocat which was not supplied. 

      //MessageBox.Show("Order Inserted"); 

      con.Close(); 
     } 
+0

_cmd.Parameters.AddWithValue (@ "txt_call", txt_call.Text == null); bu satırı açıklayabilir misiniz? – TaW

+2

İstediğiniz cb_ocat öğesinin gönderildiği istisna nedeniyle geçersizdir. –

+0

@TaW bu satır işe yaramaz ama tutarsız çünkü txt_Call.Text asla boş olamaz – Steve

cevap

1

bundan daha emin değilim ama onun veri türü vnarchar olan öğenin kategorisidir

cb_oact dize dize cmd.Parameters.AddWithValue dönüştürmek için denemek ise ("@ cb_ocat", cb_ocat.SelectedItem.ToString()); Bu çalışma