我试图更新柱/列包含以下值:更新在MySQL
\\localhost\db\kkk\086018\ss\DocA\1_216925.jpg
与
\\localhost\db\kkk\086018\dd\DocA\1_216925.jpg
使用下面的C#代码:
string str = "update my_document " +
"set path = replace (path,'" + fromFolder + "','" + toFolder + "')" +
"where doc_id in(select doc_id from patient_document where folder_id='" + id + "')";
str.Replace("\\", "\\\\");
Console.WriteLine(str);
using (MySqlConnection conn = new MySqlConnection(ECModel.Instance.ConnString))
{
using (MySqlCommand cmd = new MySqlCommand(str, conn))
{
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
}
什么我注意到这个路径正确地提交给mysql,但它不会反映自C#应用程序和mysql之间,所有\\转换为\。
你能介意我怎么解决我的问题吗?
- 我在我的前面也使用@但也解决方案也没有工作。
**还我注意到,当我运行\\\\它工作正常我的更新语句。
你需要弄清楚如何为你的数据使用占位符值,而不是仅仅用连接来捣碎它。这是整个问题的源头,其中最重要的是[SQL注入漏洞](http://bobby-tables.com/)。 – tadman
@tadman上帝拯救你。我的问题通过使用参数解决。谢谢你的提示。 – MariN