MySQL用C#引领空白

时间:2011-09-22 14:20:29

标签: c# mysql windows whitespace

当我更新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。

有人可以帮我解决这个问题吗?这让我疯了。

2 个答案:

答案 0 :(得分:3)

是的,你在SQL中有一个领先的空间:

"UPDATE " + table + " SET " + new_field + " =' " + new_value+ "'

请注意“=”之后的位 - 你有一个引号,然后是一个空格,然后是new_value

但是,您不应该首先直接将值放在SQL中 - 您应该使用参数化SQL语句...目前您已经等待发生SQL注入攻击,以及潜在的问题对于带有引号的诚实值。

您应该在new_valuevalue使用参数化SQL ...我假设fieldtable来自更“受信任”的来源?< / p>

答案 1 :(得分:1)

这似乎有一个*是

的空格
" ='*" + new_value