- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Adapter.Update更新数据时提示违反并发性 UpdateCommand 影响了预期 1 条记录中的 0 条
对于使用系统向导生成的TableAdapter,默认是取用严格的并发规则控制数据的更新的,如果实际业务并不需要并发控制,则可以修改设置,更新时只使用主键来控制更新,这样设置后,只要主键的值没人更改就不会出现并发错误。
具体操作如下:
不要选中“使用开放式并发”选项
设置完成后,可以查看系统自动生成的UpdateCommand语句,你可以看到where 语句后,只用了uid这个主键列. 这样设置后,在执行update()时,只要uid的值与原值一样就不会引发并发错误。
UPDATE t_test
SET tname = ?, [desc] = ?
WHERE (uid = ?)
假如,选中“使用开发式并发”选项会后,生成的SQL会变成如下:
UPDATE t_test
SET tname = ?, [desc] = ?
WHERE (uid = ?) AND (tname = ?) AND ([desc] = ?)
执行update()函数时,只要uid,tname,desc其中一个值与原值不同就会引起并发错误.
以上方法只适合不需要进行并发控制的情况,有些情况下,并发制件是必须的,这时就不能只用主键来控制了,需要把禁止并发操作的字段放在where 子句里, 想要准确控制,最好自己写个myUpdateCommand,然后把这个赋给adapter的UpdateCommand属性
adapter.UpdateCommand = myUpdateCommand
adapter.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 语句中的 ? 必须一一对应,如果顺序弄错,保存的数据就不正确,如果是where后面的 ? 与 updatecommand.Parameters中的顺序不匹配,这时就会引起并发错误。
您可能关注的文档
- 600MW超临界W火焰锅炉无烟煤燃烧NO_x释放规律研究.pdf
- 600t活性石灰回转窑生产线工艺简介及技术特点.pdf
- 600MW湿法脱硫系统制浆方式优化及电石渣应用效果评价_赵光深.pdf
- 60Si_2Mn_50CrVA类弹簧钢的焊接工艺_罗世隆.pdf
- 61例不完全性川崎病与微小病毒B19感染.pdf
- 62株阴沟肠杆菌药物耐药性的检测及分析.pdf
- 65Mn钢磨削硬化层组织的研究.pdf
- 666-关于牛顿力学的力和拉格朗日力学的力..pdf
- 65纳米硅衬底上低损耗带屏蔽的共面波导传输线建模.pdf
- 6kV厂用电系统接地分析及处理_姚建新.pdf
- 2025年春新北师大版八年级物理下册全册课件.pptx
- 2025年春新北师大版八年级物理下册全册教学课件.pptx
- 2025年秋季新北师大版八年级上册物理全册教学课件.pptx
- 2025年秋季新人教版九年级上册化学全册课件.pptx
- 2025年新人教版八年级上册物理全册课件.pptx
- 2025年秋季新人教版九年级上册化学全册教学课件(新版教材).pptx
- 新人教版七年级上册英语全册课件(2025年新版教材).pptx
- 锂离子电池前驱体磷酸铁合成方法研究现状及展望.docx
- 2024年东盟石油和天然气更新报告(英文版)-东盟.docx
- DB3209_T 1207.2-2022 建设工程档案管理 第二部分:房屋建筑工程文件归档和档案移交范围.docx
文档评论(0)