2017-09-15 10 views
3

リストボックス内のすべてのデータをデータベースのテーブルに移動したいC#SQLVisual Studio 2015に入れてみましたそれを作るが、正しく動作しないとこれは私がリストボックスからデータを挿入するために使用するコードです。私は、挿入されたデータは、lst_OrderNameまたはlst_QTYとlst_Price2内数で同じオブジェクトではありませんすべてのデータをリストボックスからデータベース内のテーブルに移動

private void Order() 
{ 
    using (SqlConnection connection = new SqlConnection(connectionString1)) 
    { 
     String query = "INSERT INTO Tbl_order (OrderName,Quantity,Price,Serves_way,Date) VALUES (@OrderName,@Quantity, @Price,'"+servers+"','" + time1.ToString(format1)+"')"; 

     using (SqlCommand command = new SqlCommand(query, connection)) 
     { 
      connection.Open(); 

      command.Parameters.AddWithValue("@OrderName", lst_OrderName.Items.Add("@OrderName")); 
      command.Parameters.AddWithValue("@Quantity", lst_QTY.Items.Add("@Quantity")); 
      command.Parameters.AddWithValue("@Price", lst_Price2.Items.Add("@Price")); 

      int result = command.ExecuteNonQuery(); 

      // Check Error 
      if (result < 0) 
       Console.WriteLine("Error inserting data into Database!"); 
     } 
    } 
} 

あなたの助けを必要としています。ここにデータベースのテーブル enter image description here

どのようにすべてのデータをリストボックスからデータベースに挿入するのですか?

答えて

2

ListBox.SelectedItemプロパティを使用するように見えます。 ListBox.Items.Add()は、ListBoxアイテムコレクションに新しいアイテムを追加し、そのインデックスを返します。したがって、ここでやっていることは、文字列 "@OrderName"をlst_OrderNameに追加し、既に10個の項目があるとし、SQLパラメータに値10を割り当てているとします。代わりに...AddWithValue("@OrderName", lst_OrderName.SelectedItem)のような値を取得する場合や、文字列値のみを使用する場合は...AddWithValue("@OrderName", lst_OrderName.GetItemText(lst_OrderName.SelectedItem)を使用します。

+0

ありがとうございます^^。しかし、リストボックスにリストされているすべてのデータをテーブルに挿入するにはどうしてですか?このように私はそれを挿入するためにそれを選択する必要があります。 –

+0

私の例では、複数の選択項目をどのように扱うべきかのロジックは、特定のニーズに応じて決まるため、各ListBoxから選択した項目を1つだけ必要とするものとします。各リストボックス 'foreach(オブジェクトobj in lst_OrderName.SelectedItems){/ *何か* /}'をいつでもループすることができます。 – zambonee

+0

おかげさまで、ありがとう、2日間頑張ってくれました^^ "おかげでもう一度感謝してくれます。 –

関連する問題