2016-03-28 28 views
0

コンボボックス(cb_oname)から項目を選択して注文を入力すると、プログラムがクラッシュし、executenonquery()でエラーが発生します。ボタン。 cb_ocatは(50)パラメータ化されたクエリエラー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); _この行について説明できますか? – TaW

+2

あなたが掲示した例外のため、cb_ocatの選択された項目はpropably nullです。 –

+0

@TaW txt_Call.Textは決してnullにならないので、その行は無用ですが重要ではありません – Steve

答えて

1

はこれをあまりわかりませんが、そのデータ型がvnarcharあるアイテムのカテゴリです

cb_oactは、文字列は文字列 cmd.Parameters.AddWithValueに変換しようとしている場合( "@cb_ocat"、cb_ocat.SelectedItem.ToString()); 希望します。

関連する問題