public string mt(DataSet ds)
{
SqlDataAdapter adp = new SqlDataAdapter("select  * from  表1", conn);
sqlCommandBuilder scb = new SqlCommandBuilder(adp);
conn.Open();
DataSet ds1 = new DataSet();
try
            {
                adp.Fill(ds1);
                ds1.Tables[0].Merge(ds.Tables[0],true);//合并表, 结构完全一样
                adp.Update(ds1.Tables[0]);                
……
}
//数据库没有更新 ???

解决方案 »

  1.   

    …… 
     adp.Fill(ds1); 
      ds1.Tables[0].Merge(ds.Tables[0],true);//合并表, 结构完全一样 
    -------------------
    //是查看 合并后的表的行状态么 ?
    //如果 行状态 没有变成  Added 怎么办 ???如何操作
    ----------------  adp.Update(ds1.Tables[0]);        ……
      

  2.   

    Merge后,原表中增加了记录行的状态会不变 ??????
      

  3.   

    如果用SQLCOMMANDBUILDER,你必须先定义一个SELECTEDCOMMAND,然后再定义SQLCOMMANDBUILDER,没有SELECTEDCOMMAND,适配器将不知道数据结构,不知该将数据更新到哪个表.
      

  4.   

    //需要对传入的ds.Tables[0]中的行状态进行操作么 ?-------------
    adp.Fill(ds1);  
      ds1.Tables[0].Merge(ds.Tables[0],true);//合并表, 结构完全一样 
    ---------------------------
      

  5.   

    adp.SelectCommand = new SqlCommand("select  * from  表1", conn); 
    sqlCommandBuilder scb = new SqlCommandBuilder(adp); SELECTEDCOMMAND定义了也不行如果用SQLCOMMANDBUILDER,你必须先定义一个SELECTEDCOMMAND,然后再定义SQLCOMMANDBUILDER,没有SELECTEDCOMMAND,适配器将不知道数据结构,不知该将数据更新到哪个表.
      

  6.   

    ds1.Tables[0].Merge(ds.Tables[0],true);
    行状态 unchanged
    //没有变 ,怎么办 ???
    发表于:2008-03-18 11:47:451楼 得分:0 
    看看行状态变了没?