SqlDataAdapter.UpdateCommand手动如何设置?

fws960211 2011-07-23 10:08:29
本人刚开始学习C#,在操作SQL数据库过程中遇到问题:
因SQL数据库没有主键,在SqlDataAdapter.UpdateCommand更新时出错。原因可能是更新语句没有设置。请教手动要如何写更新语句呢?
该SQL数据库是专用软件自动生成、自动调用的,数据量大。不能改动,无法生成或设置主键。
ValueID [TimeStamp] MS RealValue Quality Flags
18 2011-1-30 8:50:00 234 1151.04162597656 128 8392768
19 2011-1-30 8:50:00 234 43.3449058532715 128 8392768
20 2011-1-30 8:50:00 234 .289351850748062 128 8392768
21 2011-1-30 8:50:00 234 .402777761220932 128 8392768
18 2011-1-30 9:30:00 234 1145.83337402344 128 8392704
19 2011-1-30 9:30:00 234 49.6527786254883 128 8392704
20 2011-1-30 9:30:00 234 .289351850748062 128 8392704
21 2011-1-30 9:30:00 234 .385416686534882 128 8392704
18 2011-1-30 9:40:00 234 1124.56591796875 128 8392704
19 2011-1-30 9:40:00 234 49.1898155212402 128 8392704
20 2011-1-30 9:40:00 234 .289351850748062 128 8392704
21 2011-1-30 9:40:00 234 .381944477558136 128 8392704
我想把ValueID==18的所有记录的RealValue值,修改成:用(ValueID==21)的RealValue与(ValueID==20)的RealValue的差。
数据的运算基本解决了。最后的数据库更新由于不能自动生成dataAdapter.UPdate的更新语句,无法执行。
请问各路大虾,要如何写才能更新语句呀?我是新手,麻烦写的具体些呀。要不然我看不明白,先谢谢了!

恳求各位出手相助呀。好不容易有了积分发个贴。



...全文
302 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles_y 2011-07-25
  • 打赏
  • 举报
回复
如果可能的话你就添个自增字段,这样你就能用adpter.update了,计算也就方便了,更新起来速度还快
charles_y 2011-07-25
  • 打赏
  • 举报
回复
这没办法用adapter.update(..)来更新,它的更新是以记录为单位的。
自己写sql语句,用SelectCommand.ExcuteNonQuery 一行一行更新吧. 
一个sql 语句应该能解决,这个我不太熟,你再问问别人吧,实在不行去数据库区去问问sql 语句应该是什么样子的。

fws960211 2011-07-25
  • 打赏
  • 举报
回复
是更新所有valueid==19的记录。更新的结果是所有在相同时间段内,valueid==21的数据与valueid==20的差。
charles_y 2011-07-25
  • 打赏
  • 举报
回复
没有任何一个可以区别一个记录的字段或者联合字段,不仅仅C#没法更新,任何语言都无法更新,你让他更新那一行记录呢?

加一个自增字段。
fws960211 2011-07-25
  • 打赏
  • 举报
回复
郁闷,主键没法设呀~~~
看看上面的表要怎么设呢?
gdstfox 2011-07-25
  • 打赏
  • 举报
回复
好歹也给个索引,用SqlCommand去执行Update
gdstfox 2011-07-25
  • 打赏
  • 举报
回复
不设置主键,update就要遍历全表

要设置主键,别拿主键不当回事!!!!!!
鸭梨山大帝 2011-07-25
  • 打赏
  • 举报
回复
对你好失望哦~~

1.表为什么不设主键?
2.即使不设逐渐也是可以更新的,SqlDataAdapter有其限制.不设主键不可以更新.
你可以自己手动写T-SQL 用SqlCommand去更新.

[Quote=引用 2 楼 fws960211 的回复:]

看来真的没有办法了。C#真的做不到了吗? 好失望哟 :(
支持的请顶起!
[/Quote]
bdmh 2011-07-23
  • 打赏
  • 举报
回复
要设置主键,别拿主键不当回事
fws960211 2011-07-23
  • 打赏
  • 举报
回复
看来真的没有办法了。C#真的做不到了吗? 好失望哟 :(
支持的请顶起!

110,533

社区成员

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

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

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