首先,我正在使用MySQL-Connector / Net和MySQL数据库。 请不要告诉我应该使用或者我不尝试捕捉。我有,但我只想发布少量代码。
我想在一个位置更新多个字段,但它无法正常工作。我收到了语法错误。
(来自评论)我收到此错误:
MySql.Data.MySqlClient.MySqlException(0x80004005):您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在' + 1,allC = allC + 50'附近使用正确的语法。在第1行
sql_command.CommandText = "Update Test Set x1 + 1 And allC + ?Ammount Where = 1;";
sql_command.Parameters.Add("?Ammount", MySqlDbType.Int32).Value = dataTable.Tables[0].Rows.Count;
sql_command.ExecuteNonQuery();
但这不是吗? 我真的不需要where子句,因为它只是一个我想说的数字表,因此不会超过一行。 但如果尝试的话,它也无法正常工作:
sql_command.CommandText = "Update Test Set x1 + 1 And all + ?Ammount;";
我还有另外一个问题。 如果我想从数据库中获取一个条目并且它只是一个,这是最简单的方法吗?
那就是它,但是如何将此记录保存在代码量较少的字符串中呢?
sql_command.CommandText = "Select ID From Customer Order By ID Desc Limit 1;";
答案 0 :(得分:2)
将表达式分配到列并使用逗号(,
)代替And
:
Update Test
Set x1 = x1 + 1, all = all + ?Ammount
Where = 1;
此外,您的WHERE
条款无效,但我需要更多信息才能为您解决此问题。
答案 1 :(得分:1)
UPDATE语句的SQL语法超出了修复范围:
Update Test Set x1 + 1 And all + ?Ammount Where = 1;
哪个字段WHERE = 1
应该引用?
哪个字段应该获得x1 + 1
的价值?
除非经过重大修改,否则我不相信这个问题可以得到妥善回答;请提供一些关于你想要用UPDATE语句做什么的描述。
此外,最后一个SELECT语句可以替换为以下内容:
SELECT MAX(ID) FROM Customer;
这会更具可读性。