当我更新MySQL数据库中的字段时,它总是在值中添加一个空格。 我尝试使用trim-command和replace-command删除空格。他们都没有工作。所以我希望它不是一个空格,而是一些模糊的ASCII字符。这些是我使用的命令:
this.foo = result.GetValue(0).ToString().Trim();
this.bar = result.GetValue(0).ToString().Replace(" ","");
它更新的字段是VARCHAR(xx)。这是我的MySQL更新命令:
MySqlCommand cmd = new MySqlCommand("UPDATE " + table + " SET " + new_field + " =' " + new_value+ "' WHERE " + field+ "= " + value + "",this.con);
this.con是我与MySQL数据库的连接。
仅供参考:我在Visual Studio 2008中使用.NET 3.5CF和mysql.data.cf DLL。
有人可以帮我解决这个问题吗?这让我疯了。
答案 0 :(得分:3)
是的,你在SQL中有一个领先的空间:
"UPDATE " + table + " SET " + new_field + " =' " + new_value+ "'
请注意“=”之后的位 - 你有一个引号,然后是一个空格,然后是new_value
。
但是,您不应该首先直接将值放在SQL中 - 您应该使用参数化SQL语句...目前您已经等待发生SQL注入攻击,以及潜在的问题对于带有引号的诚实值。
您应该在new_value
和value
使用参数化SQL ...我假设field
和table
来自更“受信任”的来源?< / p>
答案 1 :(得分:1)
这似乎有一个*是
的空格" ='*" + new_value