MySQL与c#的前导空格

本文关键字:空格 MySQL | 更新日期: 2023-09-27 18:09:28

当我更新MySQL数据库中的字段时,它总是向值添加空白。我尝试用trim-命令和replace-命令删除空白。他们两个都不工作。所以我希望它不是一个空白,但一些模糊的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);

供参考:我在Visual Studio 2008中使用。net 3.5 5cf和mysql.data.cf DLL。

有人能帮我解决这个问题吗?

MySQL与c#的前导空格

是的,你在SQL中有一个前导空格:

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

注意"="后面的位-你有一个引号,然后是一个空格,然后是new_value

然而,你不应该把值直接放在SQL中——你应该使用参数化的SQL语句…目前你有一个SQL注入攻击等待发生,以及潜在的问题,诚实的值与引号。

你应该使用参数化的SQL为new_valuevalue在这里…我假设fieldtable来自更"可信"的来源?

这里似乎有一个空格,其中*是

" ='*" + new_value