CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

*****使用DataAdapter更新DataSet,但是dataAdapter.update(dataset)后有的字段更新了,有的没有更新,调试发现字段值确实已经改变了,但是却

楼主liwubao(自然健康每一天)2003-12-04 13:50:14 在 .NET技术 / ASP.NET 提问

使用DataAdapter更新DataSet,但是dataAdapter.update(dataset)后有的字段更新了,有的没有更新,调试发现字段值确实已经改变了,但是却没有更新到数据库中.什么原因呢?谢谢 问题点数:20、回复次数:12Top

1 楼gshope(北京.Net)回复于 2003-12-04 13:59:43 得分 4

要在myDataSet.AcceptChanges()之前update  
  Top

2 楼superch0054(竹君子)回复于 2003-12-04 14:00:45 得分 4

可能你的数据库字段设为只读了吧  
  贴一下代码!Top

3 楼bobjeey(三十年河东,三十年河西)回复于 2003-12-04 14:08:28 得分 4

1、new   SqlCommandBuilder(你的SqlDataAdapter),需要它来创建dataset表中行变化后自动产生s相应的sql语句。  
  2、内存表必须有主键,而且主键名称必须合法。  
  3、尽量更新后使用dataset.AcceptChanges(),虽然它是默认的。  
   
  做到以上3点,更新数据库是会成功的。Top

4 楼liwubao(自然健康每一天)回复于 2003-12-04 15:02:27 得分 0

谢谢你们的回答.  
  1.在myDataSet.AcceptChanges()之前update.在update前后我都没有使用AcceptChanges.  
  2.数据库字段设为只读.没有设置.新增的时候字段都正常,更改的时候,某几个字段不正常.  
  3.我使用vsIDE中的数据组件自动生成的dDataSet和dataAdapter.生成没有错误.  
  还有,好像重复测试,没有报告任何错误,但是有时可以,有时不行.  
  代码如下:  
  DataRow   row=ds.FindBye***();  
  row.A=20;  
  DataAdapter.update(ds);  
  基本这样做的.  
   
  谢谢你们的回答!Top

5 楼vipfenghuang(张伟)回复于 2003-12-04 15:26:58 得分 2

OleDbDataAdapter   da1   =   new   OleDbDataAdapter();  
  da1.InsertCommand   =   ...  
  da1.InsertCommand.Connection   =   conn;  
  其中得InsertCommand可以为UpdateCommand   or   DeleteCommand  
  da1.Update(data);Top

6 楼liwubao(自然健康每一天)回复于 2003-12-04 17:34:05 得分 0

还是不行,请各位高手帮忙啊Top

7 楼liwubao(自然健康每一天)回复于 2003-12-05 09:03:40 得分 0

帮帮我!!!!!谢谢了.  
  dataAdapter.update(dataset)后有的字段更新了,有的没有更新,调试发现字段值确实已经改变了,但是却没有更新到数据库中Top

8 楼afxucamd(西门吹炭)回复于 2003-12-05 11:04:10 得分 3

把你的UpdateCommand贴出来看看Top

9 楼liwubao(自然健康每一天)回复于 2003-12-05 11:18:27 得分 0

数据库表:   单据1  
  字段:     单据编号:   varchar(50)   not   null  
                数量1:   decimal(18,2)   null  
                数量2:   decimal(18,2)   null  
  使用IDE的数据组件自动生成dataAdapter,dataconnection,dataset  
  生成dataadapter使用的sql语句:select   *   from   单据1   where   单据编号=@单据编号  
  生成没有错误提示.  
  绑定到textbox1,textbox2,textbox3.  
  显示正常.  
  保存按钮   事件  
  btnSave(..){  
  this.sqldataadatper.selectcommand.parameter...value=this.textbox1.text;  
  this.sqldataadapter.fill(this.dataset1);  
      ....   row=this.dataset1.单据1.FindBy单据编号(this.textbox1.text);  
  row.数量1=Convert.ToDecimal(textbox2.text);(text值正常情况下);  
  row.数量2=Convert.ToDecimal(textbox3.text);(text值正常情况下);  
  this.sqldataadapter.update(this.dataset1);  
  以上为我的代码简况.还需要写什么吗?  
  谢谢你们的帮助!!!!!  
   
   
  }Top

10 楼afxucamd(西门吹炭)回复于 2003-12-05 12:53:50 得分 3

你只有SelectCommand没有UpdateCommand怎么更新数据库.  
  Top

11 楼liwubao(自然健康每一天)回复于 2003-12-05 13:02:48 得分 0

updatecommand,deletecommand,selectcommand等等这些在使用IDE数据组件的时候都自动创建了.  
  谢谢了,不过还是没有解决Top

12 楼liwubao(自然健康每一天)回复于 2003-12-05 13:50:53 得分 0

非常抱歉.  
  原因找到了,是因为我在操作的表上有触发器,触发器回写了数字.所以实际上是保存正确了,但是触发器又给改回去了.  
  谢谢各位的回答.  
  Top

相关问题

  • 关于ADO.NET 中DataSet的数据更新? 更新text类型字段.
  • OleDbReader通过一连接返回一结果集,通过某一字段值来更新连接中另外一个表。更新采用哪个类更好,更简单?dataAdapter+dataSet还是其他
  • 更新字段的问题
  • 如何更新blob字段??
  • 更新多个字段
  • datetime字段如何更新?
  • 无法更新bit字段
  • 字段更新的问题,
  • "是/否"类型字段如何更新?
  • 怎能更新可为空的字段

关键词

  • 字段
  • 数据库
  • null
  • 更新
  • dataadapter
  • dataset
  • acceptchanges
  • 生成
  • 使用
  • 谢谢

得分解答快速导航

  • 帖主:liwubao
  • gshope
  • superch0054
  • bobjeey
  • vipfenghuang
  • afxucamd
  • afxucamd

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo