一个SqlDataAdapter的奇葩问题。

燕雀之志 2013-01-23 04:30:13
利用SqlDataAdapter执行insert遇到一个奇葩的问题。

在设计表的时候,标识列ID列放在了最后一个,导致利用SqlDataAdapter来insert的时候 自动生成的sql语句是这样的
UPDATE 数据审核 SET 分所名称=@分所名称,分所ID=@分所ID,审核时间=@审核时间,审核状态=@审核状态,审核人=@审核人,
WHERE (ID= @Original_ID);
IF @@rowcount = 0
INSERT INTO 数据审核(分所名称,分所ID,审核时间,审核状态,审核人,
VALUES (@分所名称,@分所ID,@审核时间,@审核状态,@审核人,
SELECT 分所名称,分所ID,审核时间,审核状态,审核人,
ID From 数据审核 WHERE (ID= @ID)

很明显,sql语句红色标记部分的语法是错误的,","应该是")"

这个问题困扰了我两天之久,代码从前段追踪到webservice,经过@王继良 的指导

解决方法如下:在sql 表中,把ID列调到第一个,重新加载数据集,没有问题了。 

可是为什么会出现这样的情况呢?为什么顺序不对就会出现错误呢?
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
燕雀之志 2013-01-23
  • 打赏
  • 举报
回复
等我把标识列调到第一位的时候生成就成这样了。

UPDATE 数据审核 SET 分所名称=@分所名称,分所ID=@分所ID,审核时间=@审核时间,审核状态=@审核状态,审核人=@审核人, 
WHERE (ID= @Original_ID); 
IF @@rowcount = 0 
INSERT INTO 数据审核(分所名称,分所ID,审核时间,审核状态,审核人)
VALUES (@分所名称,@分所ID,@审核时间,@审核状态,@审核人)
SELECT 分所名称,分所ID,审核时间,审核状态,审核人,
ID From 数据审核 WHERE (ID= @ID)


这样是对的。
燕雀之志 2013-01-23
  • 打赏
  • 举报
回复


UPDATE 数据审核 SET 分所名称=@分所名称,分所ID=@分所ID,审核时间=@审核时间,审核状态=@审核状态,审核人=@审核人, 
WHERE (ID= @Original_ID); 
IF @@rowcount = 0 
INSERT INTO 数据审核(分所名称,分所ID,审核时间,审核状态,审核人,
VALUES (@分所名称,@分所ID,@审核时间,@审核状态,@审核人,
SELECT 分所名称,分所ID,审核时间,审核状态,审核人,
ID From 数据审核 WHERE (ID= @ID)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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