2017-09-15 102 views
3

我想将列表框中的所有数据移动到我正在使用C#SQLVisual Studio 2015的数据库中的表格,并试过做它,但不正常工作,这是我用来从列表框中插入数据的代码。我需要你的帮助将列表框中的所有数据移动到数据库中的表格

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!"); 
     } 
    } 
} 

插入的数据不会在lst_OrderName或同一对象lst_QTY和lst_Price2数量。这里数据库中的表格 enter image description here

如何从列表框中插入带有值的所有数据到数据库?

回答

2

看起来像你想要使用ListBox.SelectedItem属性。 ListBox.Items.Add()将新项目添加到您的ListBox项目集合并返回其索引。所以,你在这里做的是将字符串“@OrderName”添加到lst_OrderName,并说它已经有10个项目,你将值10分配给SQL参数。相反,您希望获得像...AddWithValue("@OrderName", lst_OrderName.SelectedItem)这样的值,或者如果只需要字符串值,请使用...AddWithValue("@OrderName", lst_OrderName.GetItemText(lst_OrderName.SelectedItem)

+0

非常感谢你的工作^^。但是,无论如何,要将列表框中列出的所有数据都插入表中吗?这种方式我需要选择它插入。 –

+0

我的例子假设你只需要从每个ListBox中选择一个项目,因为你应该如何处理多个选定项目的逻辑取决于你的特定需求。你总是可以遍历每个ListBox的foreach(在lst_OrderName.SelectedItems中的对象obj){/ *做某事* /}'。 – zambonee

+0

好的,非常感谢,我一直在尝试2天^^“这将帮助我很多再次感谢。 –

相关问题