C# 使用加法或减法更新值

C# 使用加法或减法更新值,c#,mysql,sql,C#,Mysql,Sql,我试图添加或删除一个值,并用新值更新表。 假设我有一个经纪人得了5分。我不想添加一个新行,也不想用一个新值来覆盖现有行,即说另外5点。我希望是5+5分,5-5分。然后更新列中的值 到目前为止我已经找到了 ("Insert Into Bee_Sheet(Agents_Name, Points, Date_added)Values(" + AN + "','" + PNumber + "','" + DateTime.Now + "') ON DUPLICATE KEY UPDATE Points=

我试图添加或删除一个值,并用新值更新表。 假设我有一个经纪人得了5分。我不想添加一个新行,也不想用一个新值来覆盖现有行,即说另外5点。我希望是5+5分,5-5分。然后更新列中的值

到目前为止我已经找到了

("Insert Into Bee_Sheet(Agents_Name, Points, Date_added)Values(" + AN + "','" + PNumber + "','" + DateTime.Now + "') ON DUPLICATE KEY UPDATE Points=VALUES(Points)-VALUES(PNumber) 
但是我在我的AN上出错了,这是我们在广告中看到的代理的名字。告诉我在他们的名字附近有一个语法错误,我们使用的是first.last name方案。这不应该影响结果

因此,我的问题是,重写SQL命令以便能够从值中添加或删除一定数量的值,然后对其进行更新的最佳方法是什么


如果您需要更多信息,请告诉我。

您的语法错误:您的查询在“an”值之前缺少一个开头单引号

对于您关于更新值的实际问题,看起来您的思路是正确的。当然,假设在Bee_Sheet表上确实有一个
唯一索引
主键
。如果没有唯一索引或pkey,那么查询将只执行插入操作

我唯一的建议是,您的更新可能应该将PNumber添加到Points,而不是减去它

Insert Into Bee_Sheet
    (Agents_Name, Points, Date_added)
Values
    ('" + AN + "','" + PNumber + "','" + DateTime.Now + "')
 ON DUPLICATE KEY 
    UPDATE
        Points=VALUES(Points)+VALUES(PNumber)

我的第一个建议是使用参数,而不是将值连接在一起来创建SQL命令。我认为问题在于,在
一个
之前没有一个单引号,但是对于参数,您不必担心什么时候需要引号,什么时候不需要引号。您不更担心语法错误吗?看起来这比你的数学题更重要。这个问题的答案是不要连接SQL。使用参数或MySQL调用的任何东西。我被你的问题弄糊涂了。您会说“我不想添加新行或用新值重写现有行”,但这正是您的示例SQL现在所做的。当我尝试添加一个月值的用户时,它正在添加一个包含名称点和日期的完整新行,而不是更新现有行。我想要用一个新值更新的所有点,该值基于存在的内容以及添加或删除的内容。然后您需要
更新
,而不是
插入