违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。

问题描述

出现了这个问题真的不知道怎么解决啊我是初学请大家帮帮忙啊代码是这样的privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];sda.FillSchema(dt,SchemaType.Mapped);DataRowdr=dt.Rows.Find(txtNo.Text);dr["name"]=txtName.Text.Trim();dr["dept"]=txtDept.Text.Trim();dr["age"]=txtAge.Text.Trim();dr["sex"]=txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}错误指向的是sda.Updata(dt);这一句

解决方案

本帖最后由 lihelihe199019901990 于 2014-09-17 09:38:15 编辑
解决方案二:
cs表没有主健字段吧
解决方案三:
引用1楼gxingmin的回复:

cs表没有主健字段吧

好像是啊我MySql数据库里设置的主键是id但我想让id不可修改您看我这个应该怎么修改呢
解决方案四:
改不改id,你自己代码可以控制dataset里必须有主健字段
解决方案五:
引用3楼gxingmin的回复:

改不改id,你自己代码可以控制dataset里必须有主健字段

我明白您的意思了能不能请您指教一下怎么设置呢我是需要改哪个地方
解决方案六:
你要理解后台SQL语句是怎么做的updatetablesetcolumnname=valuewhereid=ndataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉这个跟你是否修改主键没有关系.
解决方案七:
引用5楼Z65443344的回复:

你要理解后台SQL语句是怎么做的updatetablesetcolumnname=valuewhereid=ndataset里必须有主键和数据库对应,以便能够更新当前行的数据,而不是一下把数据库里所有数据都给更新掉这个跟你是否修改主键没有关系.

我知道您说的要靠主键找到需要修改的的那一行我把全部的代码贴出来您能不能帮忙看一下到底应该在哪里做修改十分感谢这个问题困扰我好久了MySqlConnectionconn;DataSetds;MySqlDataAdaptersda;privatevoidForm4_Load(objectsender,EventArgse){conn=newMySqlConnection("DataSource=localhost;Database=first;UserId=root;PassWord=ccl");MySqlCommandcmd=newMySqlCommand("select*frompeople",conn);sda=newMySqlDataAdapter();sda.SelectCommand=cmd;ds=newDataSet();sda.Fill(ds,"cs");dataGridView1.DataSource=ds.Tables[0];}privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];sda.FillSchema(dt,SchemaType.Mapped);DataRowdr=dt.Rows.Find(txtNo.Text);dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){txtNo.Text=dataGridView1.SelectedCells[0].Value.ToString();txtName.Text=dataGridView1.SelectedCells[1].Value.ToString();txtDept.Text=dataGridView1.SelectedCells[2].Value.ToString();txtAge.Text=dataGridView1.SelectedCells[3].Value.ToString();txtSex.Text=dataGridView1.SelectedCells[4].Value.ToString();}
解决方案八:
people表的主健字段是什么?把people表结构贴上来看看
解决方案九:
引用7楼gxingmin的回复:

people表的主健字段是什么?把people表结构贴上来看看

是这样的您看一下
解决方案十:
改成这样呢privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];//sda.FillSchema(dt,SchemaType.Mapped);//DataRowdr=dt.Rows.Find(txtNo.Text);DataRow[]drs=dt.Select("id="+txtNo.Text);if(drs.Length>0){DataRowdr=drs[0];dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}}

解决方案十一:
引用9楼gxingmin的回复:

改成这样呢privatevoidbutton1_Click(objectsender,EventArgse){DataTabledt=ds.Tables["cs"];//sda.FillSchema(dt,SchemaType.Mapped);//DataRowdr=dt.Rows.Find(txtNo.Text);DataRow[]drs=dt.Select("id="+txtNo.Text);if(drs.Length>0){DataRowdr=drs[0];dr["name"]=txtName.Text.Trim();dr["dept"]=this.txtDept.Text.Trim();dr["age"]=this.txtAge.Text.Trim();dr["sex"]=this.txtSex.Text.Trim();MySqlCommandBuildercmdbuilder=newMySqlCommandBuilder(sda);sda.Update(dt);}}

我试了一下好像还是不行啊还是提示原来的问题这可怎么办
解决方案十二:
奇怪,你看看下面这个帖子对你有帮助不?
解决方案十三:
引用11楼gxingmin的回复:

奇怪,你看看下面这个帖子对你有帮助不?

抓狂了我看一下谢谢您的帮助
解决方案十四:
求帮助啊自己顶一下
解决方案十五:
再帮自己顶一下大家帮帮忙

时间: 2024-10-26 22:04:54

违反并发性: UpdateCommand 影响了预期 1 条记录中的 0 条。的相关文章

违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条 解决办法

本文转载:http://www.cnblogs.com/litianfei/archive/2007/08/16/858866.html UpdateCommand和DeleteCommand出现DBConcurrencyException异常.调试提示:违反并发性: DeleteCommand 影响了预期 1 条记录中的 0 条:或   违反并发性: UpdateCommand影响了预期 1 条记录中的 0 条. 这里的违反并发性:不是指多人编辑引起的并发. 问题原因: 在插入.更新或删除操作

Oracle的闩锁、锁定及并发性

数据库系统本身是一个多用户并发处理系统,在同一个时间点上,可能会有多个用户同时操作数据 库.这里就涉及两个很重要的问题. 这些用户之间的操作不会互相破坏.比如两个用户同时在相同的物理位置上写数据时,不能发生互 相覆盖的情况.这叫串行化,也就是说,即便两个用户同时写,也必须有先后,一个用户写完,另一个 用户继续写.串行化会降低系统的并发性,但这对于保护数据结构不被破坏来说则是必需的. 在满足串行化的前提下,如何将并发性提升到最大. 在Oracle数据库中,通过闩锁(latch)和锁定(lock)来

[原创]WCF后续之旅(12): 线程关联性(Thread Affinity)对WCF并发访问的影响

在本系列的上一篇文章中,我们重点讨论了线程关联性对service和callback的操作执行的影响:在service host的时候,可以设置当前线程的SynchronizationContext,那么在默认情况下,service操作的执行将在该SynchronizationContext下执行(也就将service操作包装成delegate传入SynchronizationContext的Send或者Post方法):同理,对于Duplex同行方式来讲,在client调用service之前,如果

Java中Clojure如何抽象并发性和共享状态

在所有 Java 下一代语言中,Clojure 拥有最激进的并发性机制和功能.Groovy 和 http://www.aliyun.com/zixun/aggregation/16945.html">Scala 都为并发性提供了改善的抽象和语法糖的一种组合,而 Clojure 坚持了它始终在 JVM 上提供独一无二的行为的强硬立场.在本期 Java 下一代 中,我将介绍 Clojure 中众多并发性选项的一部分.首先是为 Clojure 中易变的引用提供支撑的基础抽象:epochal 时间

事务策略: 高并发策略-学习如何为支持高用户并发性的应用程序实现事务策略

简介:事务策略 系列文章的作者 Mark Richards 将讨论如何在 Java 平台中为具有高吞吐 量和高用户并发性需求的应用程序实现事务策略.理解如何进行折衷将帮助您确保高水平的数据完整性和 一致性,并减少随后开发流程中的重构工作. 我在本 系列 的前几篇文章中所介绍的 API 层 和 客户端编排策略 事务策略是应用于大多数标准业 务应用程序的核心策略.它们简单.可靠.相对易于实现,并且提供了最高水平的数据完整性和一致性. 但有时,您可能需要减小事务的作用域以获取吞吐量.改善性能并提高数据

DB2通用数据库的并发性

在数据库管理系统(DBMS)的领域中,术语"并发性"用于表示不止一个应用程序基本上(从用户的角度来看)同时访问同一数据的能力.因为 DBMS 的主要优点之一就是可以在多个用户和多个应用程序中共享数据,所以数据库系统应该提供一种管理并发访问数据的方法.DBMS 必须确保维护数据的一致状态和数据的完整性. 取得该效果的一种方法就是实施只串行(serial-only)模式来处理数据库请求.即每个事务都要等待另一事务(具有更高的优先权或者比它早启动)完成其工作.然而,对于现在的在线系统和客户异

《Java安全编码标准》一1.7 并发性、可见性和内存

1.7 并发性.可见性和内存 可以在不同线程之间共享的内存称为共享内存(shared memory)或内存堆(heap memory).本节使用变量(variable)这个名词来代表字段和数组元素[JLS2005].在不同的线程中共享的变量称为共享变量.所有的实例字段.静态字段以及数组元素作为共享变量存储在共享内存中.局部变量.形式方法参数以及异常例程参数是从来不能在线程之间共享的,不会受到内存模型的 影响. 在现代多处理器共享内存的架构下,每个处理器有一个或多个层次的缓存,会定期地与主存储器进

JVM 并发性: Java 和 Scala 并发性基础

Java 并发性支持 在 Java 平台诞生之初,并发性支持就是它的一个特性,线程和同步的实现为它提供了超越其他竞争语言的优势.Scala 基于 Java 并在 JVM 上运行,能够直接访问所有 Java 运行时(包括所有并发性支持).所以在分析 Scala 特性之前,我首先会快速回顾一下 Java 语言已经提供的功能. Java 线程基础 在 Java 编程过程中创建和使用线程非常容易.它们由 java.lang.Thread 类表示,线程要执行的代码为 java.lang.Runnable 

WCF的并发性问题

问题描述 使用控制台程序承载WCF,会影响WCF的并发性吗? 解决方案 解决方案二:并发一般是指服务器,你做个客户端有啥影响.WCF效率很差.并发更差.IIS本身就是为了简单易用而牺牲了相当大的效率.解决方案三:和控制台没有关系,都需要考虑并发.解决方案四:WCF出性能问题最常见的情况下,你在客户端看到的异常信息是"超时"异常.当然可能有的人说"遇到超时,那么就增加超时等待时间啊!",这显然是错误的.因为不合理的超时本身就是不可容忍的错误,怎么能用设置更长的超时时间