2
MySQL查詢爲什麼慣於此命令正確執行:執行從asp.net
using (MySqlCommand myCommand = new MySqlCommand("Update jobs SET poster_email = '@1', url = '@2' WHERE company = '@3'; ", myConn))
{
myCommand.Parameters.AddWithValue("@1", email);
myCommand.Parameters.AddWithValue("@2", url);
myCommand.Parameters.AddWithValue("@3", company);
myConn.Open();
myCommand.ExecuteNonQuery();
}
但當我代替@ 3與實際值它的工作原理:
using (MySqlCommand myCommand = new MySqlCommand("Update jobs SET poster_email = '@1', url = '@2' WHERE company = 'MyCompany'; ", myConn))
{
myCommand.Parameters.AddWithValue("@1", email);
myCommand.Parameters.AddWithValue("@2", url);
myConn.Open();
myCommand.ExecuteNonQuery();
}
的值傳遞在公司變量與第二個示例中硬編碼的值相同。我已經加入了調試器,以確保公司變量被添加爲參數,並且它是我期望的值。即。沒有空格和修剪()
任何想法我做錯了什麼?
更新:「?」
這也適用,但我擔心SQL注入......
string myQuery = string.Format("Update jobs SET poster_email = '{0}', url = '{1}' WHERE company = '{2}'; ", email, url, company);
using (MySqlCommand myCommand = new MySqlCommand(myQuery, myConn))
{
myConn.Open();
myCommand.ExecuteNonQuery();
}
我給它一個嘗試,它沒有什麼區別... – Pedro