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

一个简单的问题:用dataset更新数据库,怎么老是提示并发冲突 在线等 急用~~

楼主allen_21229(无间道四)2005-08-03 18:01:02 在 .NET技术 / C# 提问

下面是一个简单的数据库操作类:  
  using   System;  
  using   System.Data;  
  using   System.Data.SqlClient;  
   
  namespace   dbSetting  
  {  
  public   class   LinkDataBase  
  {  
  private   string   strSQL;  
  private   string   connectionString   =   "workstation   id=localhost;Integrated   Security=SSPI;database=Capacity0715";  
  private   SqlConnection   myConnection;  
  private   SqlCommandBuilder   sqlCmdBld;  
  private   DataSet   ds   =   new   DataSet();  
  private   SqlDataAdapter   da;  
   
  public   LinkDataBase()  
  {  
  }  
   
  public   DataSet   SelectDataBase(string   tempStrSQL,string   tempTableName)  
  {    
  this.strSQL   =   tempStrSQL;  
  this.myConnection   =   new   SqlConnection(connectionString);  
  this.da   =   new   SqlDataAdapter(this.strSQL,this.myConnection);  
  this.ds.Clear();  
  this.da.Fill(ds,tempTableName);  
  return   ds;//返回填充了数据的DataSet,其中数据表以tempTableName给出的字符串命名  
  }  
   
  //数据库数据更新(传DataSet和DataTable的对象)  
  public   DataSet   UpdateDataBase(DataSet   changedDataSet,string   tableName)  
  {  
  this.myConnection   =   new   SqlConnection(connectionString);  
  this.da   =   new   SqlDataAdapter(this.strSQL,this.myConnection);  
  this.sqlCmdBld   =   new   SqlCommandBuilder(da);  
  this.da.Update(changedDataSet,tableName);  
  return   changedDataSet;//返回更新了的数据库表  
  }  
   
                  }  
  }  
   
  *********下面是用DataSet   更新数据代码   一直在datagrid里面显示和修改数据  
  *********调用:  
   
  using   System;  
  using   System.Drawing;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Windows.Forms;  
  using   System.Data;  
   
  namespace   dbSetting  
  {  
  ///   <summary>  
  ///   Form1   的摘要说明。  
  ///   </summary>  
  public   class   Form1   :   System.Windows.Forms.Form  
  {  
   
  private   DataSet   ds   =   new   DataSet();  
  private   LinkDataBase   link   =   new   LinkDataBase();  
  private   string   sendTableName   =   "tblColor";  
  private   string   sendStrSQL   =   "select   ColorID,ColorName,Description   from   tblColor";  
   
  private   System.Windows.Forms.DataGrid   dataGrid1;  
  private   System.Windows.Forms.Button   button1;  
  private   System.Windows.Forms.Button   button2;  
  ///   <summary>  
  ///   必需的设计器变量。  
  ///   </summary>  
  private   System.ComponentModel.Container   components   =   null;  
   
  public   Form1()  
  {  
  //  
  //   Windows   窗体设计器支持所必需的  
  //  
  InitializeComponent();  
  this.ds   =   link.SelectDataBase(sendStrSQL,sendTableName);//创建数据库连接    
  this.dataGrid1.DataSource   =   ds.Tables[0];  
  //  
  //   TODO:   在   InitializeComponent   调用后添加任何构造函数代码  
  //  
  }  
   
  //......自动生成的一些代码  
   
                                      //更新数据按钮  
  private   void   button1_Click(object   sender,   System.EventArgs   e)  
  {  
  try  
  {  
  int   row   =   this.dataGrid1.CurrentCell.RowNumber;  
  this.dataGrid1.CurrentCell   =   new   DataGridCell(row+1,0);    
  if   (this.ds.HasChanges())  
  {  
  this.link.UpdateDataBase(this.ds.GetChanges(),sendTableName);  
  MessageBox.Show("数据修改成功!","信息");  
  }  
  else  
  {  
  MessageBox.Show("没有需要修改的数据!");  
  return;  
  }  
  }  
  catch   (Exception   ex)  
  {  
  MessageBox.Show(ex.Message,"提示");  
  return;  
  }  
  }  
   
  运行:第一次点击“更新按钮”提示“更新成功”;  
        在次更新数据后,点击“更新按钮”提示“并发冲突:影响的行数为0”  
        请高手指点以下呀     谢谢了     分不够再加~~ 问题点数:80、回复次数:5Top

1 楼allen_21229(无间道四)回复于 2005-08-03 18:05:49 得分 0

请高手帮我解决以下呀     或者有更好的数据库操作类能共享以下吗?在下先谢过了Top

2 楼popcorn(米花.珠海)回复于 2005-08-03 18:06:21 得分 40

更新之后或重新编辑之前加上:this.ds.AcceptChanges();Top

3 楼weisai(与雪共舞)回复于 2005-08-21 23:13:09 得分 10

同意popcorn(米花.珠海)Top

4 楼yuwen16(rr)回复于 2005-08-26 12:37:48 得分 30

这样的解决办法还是没办法真正解决并发的情况。比如两台机器同时update一条记录。  
  同时去删除一条记录的时候。肯定报错。Top

5 楼TT008(T T)回复于 2005-10-28 09:59:43 得分 0

StudyTop

相关问题

  • dataset更新。100分
  • DataSet更新问题!!!
  • 请教:一条SQL更新语句(急用)
  • 请教:asp.net不能远程更新!?(急用)
  • dataset 数据更新问题:
  • 更新dataset到数据库
  • DataSet数据更新问题
  • 急!急!急!vfp中不能更新表的问题!请高手解答!急用!!!
  • 关于ADO的并发更新的问题,讨手赐教
  • 关于ADO的并发更新的问题,高手赐教

关键词

  • 数据库
  • ds
  • 数据
  • datagrid
  • 解决
  • 更新
  • linkdatabase
  • 并发
  • sendtablename
  • temptablename

得分解答快速导航

  • 帖主:allen_21229
  • popcorn
  • weisai
  • yuwen16

相关链接

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

广告也精彩

反馈

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