2016-07-25 82 views
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(); 

我想插入從選擇查詢「產品ID」的值插入值,我測試串ProductID作品,如果我只是插入一個cmd.Parameters.AddWithValue("?ProductID", "1");,它也能工作,但是當我把productID納入parameters.addwithvalue,它不起作用。它只是整個項目的一個功能,所以我創建了外部的mysql數據庫連接。SELECT查詢

+2

您可以只使用INSERT INTO ... SELECT。但是你應該參數化你的'WHERE'子句以避免SQL注入。 –

回答

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(); 
+0

非常感謝 –

0

修改下面一行從

cmd.Parameters.AddWithValue("?ProductID", "ProductID");

cmd.Parameters.AddWithValue("?ProductID", ProductID); //Remove "" around productID 
+0

我嘗試過,但仍然努力工作。我嘗試將其更改爲(「?ProductID」,ProductType);如果producttype的值爲1,則它可以正常工作,但是當我更改回作爲選擇查詢的productID時,它不起作用 –

+0

調試?您收到的產品ID號是什麼? –

+0

@StevenHuang您是否嘗試用'@'替換'?'? –

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可能是一個自動增量主鍵,無法完成。

+0

否它不起作用:( –

+0

是您的productid是主鍵或不? –