To 第二个问题。在多个用户同是向数据库添加数据时。我任何在保存之后返回到我刚才添加的这条记录。就好比是vb中的书签功能.如果“客户基本资料.登记ID”唯一,Filter以下就行了

解决方案 »

  1.   

    To 当我输入数据之后。开始保存。
    SqlCommandBuilder bd=new SqlCommandBuilder(this.sqldap);
    sqldap.InsertCommand=bd.GetInsertCommand();
    sqldap.Update(ds,"客户基本资料");
    插入空行到数据库。而且如果我连续添加两次而不按保存。等到最后一起保存就报错。sqldap.InsertCommand参数设了吗?报什么错?
      

  2.   

    没有参数。报什么系统错误在什么.dll中
      

  3.   

    To 当我输入数据之后。开始保存。
    SqlCommandBuilder bd=new SqlCommandBuilder(this.sqldap);
    这行可以不用:sqldap.InsertCommand=bd.GetInsertCommand();
    sqldap.Update(ds,"客户基本资料");
    插入空行到数据库。而且如果我连续添加两次而不按保存。等到最后一起保存就报错。你的"客户基本资料"表中的各个字段是否允许插入空值?
    如果允许,则这样做:DataRow row =this.BindingContext[this.ds,"客户基本资料"].AddNew(); //新建行
    this.BindingContext[this.ds,"客户基本资料"].Add(row);
    sqldap.Update(ds,"客户基本资料");//更新
      

  4.   

    To 第二个问题。在多个用户同是向数据库添加数据时。我任何在保存之后返回到我刚才添加的这条记录。就好比是vb中的书签功能.保存当前行“客户基本资料.登记ID”到变量,
    DataRow row =this.BindingContext[this.ds,"客户基本资料"].Select ("客户基本资料.登记ID='" +变量+"'");
    就是当前行
      

  5.   

    SqlConnection myConnection = new SqlConnection(myConnectionString);
    SqlCommandBuilder custCB = new SqlCommandBuilder(this.sqldap);
    myConnection.Open();
    this.sqldap.Update(ds, "客户基本资料");
    如果将保存部分该成这样就报错
    ----------------------------------
    未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中其他信息:系统错误。
      

  6.   

    我将代码改成这样了可以保存了,但还有两个问题。
    SqlCommandBuilder custCB = new SqlCommandBuilder(this.sqldap);
    this.BindingContext[this.ds,"客户基本资料"].EndCurrentEdit();
    this.sqldap.Update(ds, "客户基本资料");
    问题1,
    比如我添加一个记录。保存后,我发现这个记录中有一个字段(客户地址2)没有填,这时我再将这个字段填起来。然后再保存就报错。
    未处理的“System.Data.DBConcurrencyException”类型的异常出现在 system.data.dll 中
    其他信息:并发冲突:UpdateCommand 影响 0 个记录。
    问题2,
    这样添加记录保存成功后,我在sql中的有插入新行而引发的(INSERT)一个触发器却不工作。如果直接在sql中用insert into 插入数据该触发器是工作的。