[英]how to insert the same value from listbox to database
如何在不更改列表框到數據庫的值的情況下插入,我在數據庫中有3個列表框和一個表,代碼...
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)+"' )";
connection.Open();
for (int i = 0; i < lst_OrderName.Items.Count; i++)
{
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.Add("OrderName", SqlDbType.NVarChar).Value = lst_OrderName.GetItemText(lst_OrderName.GetSelected(i));
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.Items));
command.Parameters.AddWithValue("@Quantity", lst_QTY.GetItemText(lst_QTY.Items));
command.Parameters.AddWithValue("@Price", lst_Price2.GetItemText(lst_Price2.Items));*/
command.ExecuteNonQuery();
}
}
}
}
所以像這樣的3個列表框,其值為string,int和double
以及像這樣在數據庫中插入的值
如您所見,它們與列表框的值不同
如何從列表框中插入相同的值到數據庫?
您可以使用准備好的查詢。 您可以通過添加參數及其數據類型來准備查詢,列的長度是可選的。 然后調用Prepare()
。 之后,通過索引或列名將數據分配給參數,最后調用ExecuteNonQuery
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)+"' )";
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
// Add the length of this text column as third parameter...
command.Parameters.Add("OrderName", SqlDbType.NVarChar);
command.Parameters.Add("Quantity", SqlDbType.Int);
command.Parameters.Add("Price", SqlDbType.Money);
command.Prepare();
for (int i = 0; i < lst_OrderName.Items.Count; i++)
{
// Dont know if the .ToString() calls are necessary...
command.Parameters[0].Value = lst_OrderName.GetItemText(lst_OrderName.Items[i].ToString());
command.Parameters[1].Value = Convert.ToInt32(lst_QTY.Items[i].ToString());
command.Parameters[2].Value = Convert.ToDouble(lst_Price2.Items[i].ToString());
command.ExecuteNonQuery();
}
}
}
}
編輯:更新了答案,以正確地從每個列表框獲取項目(如史蒂夫已經提到的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.