



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对于使用系统向导生成的TableAdapter,默认是取用严格的并发规则控制数据的更新的,如果实际业务并不需要并发控制,则可以修改设置,更新时只使用主键来控制更新,这样设置后,只要主键的值没人更改就不会出现并发错误。具体操作如下:不要选中“使用开放式并发”选项设置完成后,可以查看系统自动生成的UpdateCommand语句,你可以看到where 语句后,只用了uid这个主键列. 这样设置后,在执行update()时,只要uid的值与原值一样就不会引发并发错误。UPDATE t_testSET tname = ?, desc = ?WHERE (uid = ?)假如,选中“使用开发式并发”选项会后,生成的SQL会变成如下:UPDATE t_testSET tname = ?, desc = ?WHERE (uid = ?) AND (tname = ?) AND (desc = ?)执行update()函数时,只要uid,tname,desc其中一个值与原值不同就会引起并发错误.以上方法只适合不需要进行并发控制的情况,有些情况下,并发制件是必须的,这时就不能只用主键来控制了,需要把禁止并发操作的字段放在where 子句里, 想要准确控制,最好自己写个myUpdateCommand,然后把这个赋给adapter的UpdateCommand属性adapter.UpdateCommand = myUpdateCommandadapter.update(tbl)如果通过以上设置未能解决问题,请参考以下原因。1.如果数据库是access,并且有自动编号字段,那么极容易出现错误dataset内的值与数据源不同步,造成无法预期的行为 解决方法: 使用fill方法填充ds.table后,对table建立AutoIncrement = True;AutoIncrementStep = -1;AutoIncrementSeed = 0,这样table以-1递增,不会与数据源冲突 2.检查是否设有主键。3.DeleteCommand的问题:检查是否含有自动编号字段(Access的自动编号字段可能会引发此异常); UpdateCommand的问题:检查更新的字段的原始值是否为空值(原始空值更新时可能会引发此异常)。4.多人并行操作也可能引发这样的异常。5.如果提交的值超过数据库字段的长度就会引发该异常!6.在修改了DataTable中的记录后,用getChanges()方法没有获取到修改的记录,然后保存就没有执行,但是 AcceptChanges()却执行了,这个时候DataTable和数据库中的记录实际上就不一致了。在下次执行update的时候,如果这条记录被 修改,并且状态是Modified,那么在执行update的时候就会出现这个错误。问题是,什么时候会修改了记录的内容,但是用GetChanges()却得不到呢,我是把一个字段绑定给了一个TextEdit,在 TextEdit修改了内容后,直接就关闭窗体了,这个时候内容修改(1变成2)了,但是记录的状态没有变(还是Unchanged),不知道为什么,估 计是控件的问题,所以导致这个错误。另外说一下,adapter在执行update的时候,是把所有的字段拿去当作where条件,而不是只拿主键,所以会出现只影响了0条的情况。7.是你更新数据的时候更新了那条记录的关键字,所以在提交更新的时候,update操作找不到相关记录啦8给updatecommand的参数赋值错误,比如: update set . Where code = ? and name = ? 参数一为Code,参数二为Name, 赋值的时候把顺序搞错了,把name的值给了参数Code,把code的值给了参数Name。需要注意在 UpdateCommand.Parameters.Add() 时,参数的顺序与sql 语句中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论