数据表中有如下记录
ID  NAME
1    XX
2    YY数据集Ds_Users中有一个Users的表对应上表。Ds_Users.Table["Users"].Rows[0]["ID"]=1;
Ds_Users.Table["Users"].Rows[0]["NAME"]="XX1";
Ds_Users.AcceptChanges();然后调用数据适配器的Update(Ds_Users,"Users")更新第一条记录。
为什么会更新不起?

解决方案 »

  1.   

    Update前先用命令生成器获取命令XXXCommandBuilder cBuild=new XXXCommandBuilder(DataAdapterOBJ);   //XXX:Sql/OleDb/Odbc
    DataAdapterOBJ.UpdateCommand=cBuild.GetUpdateCommand();DataAdapterOBJ.Update(Ds_Users,"Users");
      

  2.   

    缺少你的updatecommand,需要自己写,呵呵。
    如果不愿意写的话,可以直接用commandbuilder
      

  3.   

    welshem(天堂客) 试了,还是不行
      

  4.   

    把代码贴出来吧:private void SaveAction_Click(object sender, System.EventArgs e)
    {
    Ds_Users.Table["Users"].Rows[0]["ID"]=1;
    Ds_Users.Table["Users"].Rows[0]["NAME"]="XX1";
    Ds_Users.AcceptChanges();

    Ds_Users.AcceptChanges();

    if(UpdateNews(Ds_Users))
    this.BindData();//这是自定义的
    }----------------------------------------------------------
    public bool UpdateNews(ds_News news)
    {
    if(news.Tables["Users"].Rows.Count<1)
    return false;
    try
    {
    OleDbCommandBuilder cb=new OleDbCommandBuilder(da_News);
    this.da_News.UpdateCommand=cb.GetUpdateCommand();
    this.da_News.Update(news,"Users");
    news.AcceptChanges();
    return true;
    }
    catch
    {
    return false;
    }
    }
      

  5.   

    手工写SQL update语句可以。=============================
    那一定是传数据时的问题
    ID不是主键在数据库中ID绝对是主键,
    是不是要在数据集中也要设置一下?
      

  6.   

    你说手工写的Update命令可以那就是动态生成有命令有问题?
    你跟踪一下生成的命令
      

  7.   

    this.oleDbUpdateCommand1.CommandText = "UPDATE 新闻 SET 标题 = ?, 访问总数 = ?, 内容 = ?, 时间 = ?, 作者 = ? WHERE (编号 = ?) AND (作者 = ?" +
    " OR ? IS NULL AND 作者 IS NULL) AND (时间 = ? OR ? IS NULL AND 时间 IS NULL) AND (标题 =" +
    " ? OR ? IS NULL AND 标题 IS NULL) AND (访问总数 = ? OR ? IS NULL AND 访问总数 IS NULL)";
      

  8.   

    设置个断点看一下
    cb.GetUpdateCommand().CommandText
    的内容是什么
      

  9.   

    我开始是为了方便说明起见,差不多。设断点看的结果:
    "UPDATE 新闻 SET 标题 = ? , 访问总数 = ? , 内容 = ? , 时间 = ? , 作者 = ? WHERE ( (编号 = ?) AND ((? = 1 AND 标题 IS NULL) OR (标题 = ?)) AND ((? = 1 AND 访问总数 IS NULL) OR (访问总数 = ?)) AND ((? = 1 AND 时间 IS NULL) OR (时间 = ?)) AND ((? = 1 AND 作者 IS NULL) OR (作者 = ?)) )"