Asp.Net连接数据库SqlServer2005的Sql语句问题Update

linyuan115 2012-05-28 02:59:44
string sql = "update Orders o,Tables t SET o.State = 'paid',o.Sum='"+ ui.Sum + "',t.State='free' WHERE o.Id='" + ui.Id + "'and t.Id=o.TableNo";
总是报错:o附近有语法错误,求指点啊,谢谢了
...全文
239 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫魂一号 2012-05-28
  • 打赏
  • 举报
回复
多表的修改 需要多次执行,最好用到事物,成功一起执行失败则回滚。。你怕是在数据库里一下都执行哈。。
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
引用 14 楼 的回复:

请把对两个表的update操作分成两个语句执行。
update [orders] as o .......... where o.id='xxx';
update [tables] as t .......... where t.id='ooo';


早就说分开写了,他又不听
[/Quote]听了啊,正在努力改呢,虽然不报错了,但是第二个表的更新没有执行。
smitxx 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

请把对两个表的update操作分成两个语句执行。
update [orders] as o .......... where o.id='xxx';
update [tables] as t .......... where t.id='ooo';
[/Quote]

早就说分开写了,他又不听
hypobenthos 2012-05-28
  • 打赏
  • 举报
回复
请把对两个表的update操作分成两个语句执行。
update [orders] as o .......... where o.id='xxx';
update [tables] as t .......... where t.id='ooo';
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
string sql = "update [Orders] as o,[Tables] as t SET o.State = 'paid',o.Sum='"+ ui.Sum + "',t.State='free' WHERE o.Id='" + ui.Id + "'and t.Id=o.TableNo";


这个样子!
[/Quote]关键字 'as' 附近有语法错误。
Im_Sorry 2012-05-28
  • 打赏
  • 举报
回复
string sql = "update [Orders] as o,[Tables] as t SET o.State = 'paid',o.Sum='"+ ui.Sum + "',t.State='free' WHERE o.Id='" + ui.Id + "'and t.Id=o.TableNo";


这个样子!
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
模拟你的参数 在数据库中进行运行 看能否成功。

或者在调试的时候 把数据库语句拿出来 放到数据库中去看下 能否运行成功

建议是第一条。
有语法错误他会告诉你。
[/Quote]好的,谢谢啊
xmhxjjq 2012-05-28
  • 打赏
  • 举报
回复
模拟你的参数 在数据库中进行运行 看能否成功。

或者在调试的时候 把数据库语句拿出来 放到数据库中去看下 能否运行成功

建议是第一条。
有语法错误他会告诉你。
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
- - 兄弟。 问下。 你在数据库里模拟了数据测试一下么。
[/Quote]真是不好意思,我不是兄弟,也不懂什么叫模拟数据测试,总之进行相关页面操作是会报错,数据库里是有相应的数据表和数据字段的。
xmhxjjq 2012-05-28
  • 打赏
  • 举报
回复
- - 兄弟。 问下。 你在数据库里模拟了数据测试一下么。
smitxx 2012-05-28
  • 打赏
  • 举报
回复
就是你同时update Orders o,Tables t 
这就是两个表啊,不可以这样子操作的
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
哪里同时更新两个表啊
[/Quote]嘛意思啊?
smitxx 2012-05-28
  • 打赏
  • 举报
回复
分开写吧,好像同时更新两个表会有问题的
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
update Orders as o,Tables as t
[/Quote]关键字 'as' 附近有语法错误。
linyuan115 2012-05-28
  • 打赏
  • 举报
回复
'o' 附近有语法错误。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 'o' 附近有语法错误。

源错误:


行 68: catch (Exception e)
行 69: {
行 70: throw (e);
行 71: }
行 72: finally

源文件: D:\Res\Res\Model\DataAccess.cs 行: 70

堆栈跟踪:


[SqlException (0x80131904): 'o' 附近有语法错误。]
Model.DataAccess.OperateDB(String sql) in D:\Res\Res\Model\DataAccess.cs:70
Model.Order.PayOrder(Order ui) in D:\Res\Res\Model\Order.cs:91
Web.OrderManage.PayOrder.Page_Load(Object sender, EventArgs e) in D:\Res\Res\Web\OrderManage\PayOrder.aspx.cs:27
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
smitxx 2012-05-28
  • 打赏
  • 举报
回复
哪里同时更新两个表啊
xmhxjjq 2012-05-28
  • 打赏
  • 举报
回复
update Orders as o,Tables as t

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧