C#访问SQL选择

时间:2015-07-05 09:54:15

标签: c#

系统说

  

“UPDATE语句中的语法错误。”

cmd.CommandText = "Update Player set money = money + 100 where player_account = '" + origingalForm.playerAC + "'";
cmd.ExecuteNonQuery();

请帮助我!

数据类型:money(整数),player_account(string)

3 个答案:

答案 0 :(得分:1)

您没有告诉我们您的值的列类型是否完全匹配,但MS Access中的$('.staff').click(function(){ if($(this).hasClass('clicked')){ $('.staff').finish().animate({width:'33%'}, 0, function() { $("[id^=text]").fadeOut() }); } else { $('.staff').not(this).finish().animate({width:'0%'}); $(this).finish().animate({width:'100%'}, 0, function() { $("[id^=text]").fadeIn() }); } $(this).toggleClass('clicked'); }); reserved keyword。您应该使用方括号,如MONEY

我知道[MONEY]MONEY 可以根据系统区分大小写的选项设置不同的关键字,但据我所知,默认情况下不能访问。

作为最佳做法,请将其更改为非保留字。

也不要为您的值使用字符串连接。请改用parameterized queries。这种字符串连接对SQL Injection攻击开放。

答案 1 :(得分:0)

它本身的陈述似乎是正确的,只有value参数或origingalForm.playerAC参数才会导致问题。请使用ADO.Net参数系统,以确保参数将以正确的格式传递。更进一步阻止sql注入。请搜索这个关键字,他们被解释了很多...

看看这个msdn article,它会给你一个提示。

答案 2 :(得分:0)

您的更新语法是正确的,问题出在您的变量中。 在Visual Studio中添加 cmd.ExecuteNonQuery(); 一行的Breack Point,然后选中 cmd.CommandText 。 完成后如果您仍然没有发现错误,请在此处发布cmd.CommandText值,以便我为您检查。