C# 如何将相同的值从列表框插入数据库
如何在不更改列表框到数据库的值的情况下插入 我有3个列表框和数据库中的一个表,代码C# 如何将相同的值从列表框插入数据库,c#,mysql,sql,listbox,C#,Mysql,Sql,Listbox,如何在不更改列表框到数据库的值的情况下插入 我有3个列表框和数据库中的一个表,代码 private void Order() { using (SqlConnection connection = new SqlConnection(connectionString1)) { String query = "INSERT INTO Tbl_order (OrderName,Quantity,Price,Serves_way,Date
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();
}
}
}
}
private void Order()
{
使用(SqlConnection连接=新的SqlConnection(connectionString1))
{
String query=“插入Tbl_订单(订单名称、数量、价格、服务方式、日期)值(@OrderName、@Quantity、@Price、“+servers+”、“+time1.ToString(format1)+”);
connection.Open();
对于(int i=0;i
这样的3个列表框包含值字符串、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();
}
}
}
}
private void Order()
{
使用(SqlConnection连接=新的SqlConnection(connectionString1))
{
String query=“插入Tbl_订单(订单名称、数量、价格、服务方式、日期)值(@OrderName、@Quantity、@Price、“+servers+”、“+time1.ToString(format1)+”);
connection.Open();
使用(SqlCommand=newsqlcommand(查询、连接))
{
//将此文本列的长度添加为第三个参数。。。
Add(“OrderName”,SqlDbType.NVarChar);
添加(“数量”,SqlDbType.Int);
添加(“Price”,SqlDbType.Money);
command.Prepare();
对于(int i=0;i
编辑:
更新了答案以从每个列表框中正确获取项目(正如Steve已经提到的)GetSelected返回选定的行而不是列表框中的任何行EAP我想知道如何在不选择它们的情况下将它们全部插入数据库Hello^^我已经尝试过了,但在数据库中仍然出现了相同的插入值问题,我不知道是什么问题。@MaxThunder回答已更新。通过访问列表框的
.Items
属性,指定[
和]
中的行索引,可以获取项目。返回的值始终是一个对象,因此您可能需要强制转换或将其转换为所需的类型。它很有效,我很高兴哈哈,非常感谢^^谢谢。