从选择查询中插入值

时间:2016-07-25 03:37:54

标签: c# mysql database

        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数据库连接。

3 个答案:

答案 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();