我试图从3个列表框中将所有数据插入到数据库中的表中我不知道我是否做得很好这是我用将多个列表框中的所有数据插入到数据库中的表中C#
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();
for (int i = 0; i < lst_OrderName.Items.Count; i++)
{
string OrderName = lst_OrderName.GetItemText(lst_OrderName.GetSelected(i));
command.Parameters.AddWithValue("@OrderName", lst_OrderName.GetItemText(lst_OrderName.GetSelected(i)));
command.Parameters.AddWithValue("@Quantity", lst_QTY.GetItemText(lst_QTY.GetSelected(i)));
command.Parameters.AddWithValue("@Price", lst_Price2.GetItemText(lst_Price2.GetSelected(i)));
command.Parameters.Add("@OrderName", SqlDbType.NVarChar);
command.Parameters.Add("@Quantity", SqlDbType.Int);
command.Parameters.Add("@Price", SqlDbType.Money);
command.Parameters.Add("@OrderName", SqlDbType.NVarChar).Value = OrderName;
command.Parameters.Add("@Quantity", SqlDbType.Int).Value = Convert.ToInt32(lst_QTY.GetSelected(i));
command.Parameters.Add("@Price", SqlDbType.Money).Value = Convert.ToDouble(lst_Price2.GetSelected(i));
}
// command.Parameters.AddWithValue("@OrderName", lst_OrderName.GetItemText(lst_OrderName.SelectedItem));
//command.Parameters.AddWithValue("@Quantity", lst_QTY.GetItemText(lst_QTY.SelectedItem));
//command.Parameters.AddWithValue("@Price", lst_Price2.GetItemText(lst_Price2.SelectedItem));
int result = command.ExecuteNonQuery();
// Check Error
if (result < 0)
Console.WriteLine("Error inserting data into Database!");
}
}
}
的代码和我有一个问题说
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: The variable name '@OrderName' has already been declared. Variable names must be unique within a query batch or stored procedure.
这三个列表框的PIC [![在这里输入的形象描述] [1] ] [1]
代码wha有什么问题我错过了吗?
我想要数据插入数据库中的每一行,就像它在图片中的样子。
在这一点上,问题正在从最初提出和回答的问题发生显着变化。原来的问题已经解决了。这个新问题看起来应该是一个新问题。在这个问题中,具体确定您在调试器中看到的分配给参数的值,并注意观察问题的位置。 – David
非常感谢你,对不起^^。 –