string ProductType = comboBoxProductType.Text;
string ProductID = "Select ProductID from Productinformation where Name = '" + ProductType + "'";
string query = "Insert into CustStoreProd (ProductID) VALUES (?ProductID)";
MySqlCommand cmd = new MySqlCommand(query, mySQLconnection);
cmd.Parameters.AddWithValue("?ProductID", "ProductID");
cmd.ExecuteNonQuery();
我想从Selection查询“ProductID”插入值,我测试字符串ProductID
是否有效,如果我只是插入cmd.Parameters.AddWithValue("?ProductID", "1");
,它也可以,但是当我放productID
时1}}进入parameters.addwithvalue
,它不起作用。它只是整个项目的功能之一,所以我在外面创建了mysql数据库连接。
答案 0 :(得分:0)
从
修改以下行 cmd.Parameters.AddWithValue("?ProductID", "ProductID");
到
cmd.Parameters.AddWithValue("?ProductID", ProductID); //Remove "" around productID
答案 1 :(得分:0)
试试这样:
string ProductType = comboBoxProductType.Text;
string ProductID = "Select ProductID from Productinformation where Name = '" + ProductType + "'";
string query = "Insert into CustStoreProd (ProductID) VALUES (@ProductID)";
MySqlCommand cmd = new MySqlCommand(query, mySQLconnection);
cmd.Parameters.AddWithValue("@ProductID", "ProductID");
cmd.ExecuteNonQuery();
更改值? @希望它有所帮助。 或者你的ProductID是一个自动增量主键,不能在它上面完成。
答案 2 :(得分:0)
您在哪里运行查询ProductID。您没有运行查询ProductID来获取ProductId并在后续查询中使用它。
首先运行ProductID查询以从表中获取产品ID,然后在插入查询中使用产品ID。请参阅下面的示例代码。
string ProductType = comboBoxProductType.Text;
string ProductID = "Select ProductID from Productinformation where Name = '" + ProductType + "'";
string query = "Insert into CustStoreProd (ProductID) VALUES (?ProductID)";
MySqlCommand cmd = new MySqlCommand(ProductID, mySQLconnection);
int pid = Convert.ToInt32(cmd.ExecuteScalar()); //assuming product id is integer
cmd.CommandText = query;
cmd.Parameters.AddWithValue("?ProductID", pid);
cmd.ExecuteNonQuery();