ADO.NET数据库表更新问题,请叫大家,谢谢
开始是连接ACCESS表   ,获得Datatable    
 OleAdapter   =   new      OleDbDataAdapter();	 
 OleAdapter.SelectCommand   =   MyCom; 
 b1_Dataset=   new   DataSet(); 
 OleAdapter.Fill(b1_Dataset,表1); 
 Datatable   =   b1_Dataset.Tables[0]; 
 //通过查询获得临时tempDataSet    
       SqlAdapter   =   new   SqlDataAdapter(SQLStr,   MyCon); 
          tempDataSet   =   new   DataSet(); 
          SqlAdapter.Fill(tempDataSet); 
 我可以通过以下方式把tempDataSet中的表一条一条的写入Datatable   中 
    for   (int   i   =   0;   i    <   tempDataSet.Tables[0].Rows.Count;   i++) 
                                     { 
                                              Row   myRow   =   Datatable.NewRow(); 
                                                 for   (int   Columindex   =   0;   Columindex    <   Datatable.Columns.Count;   Columindex++) 
                                                 { 
                                                             myRow[Columindex]   =   tempDataSet.Tables[0].Rows[i][Columindex]; 
                                                 } 
                                                 Datatable.Rows.Add(myRow);	 
                                     } 
 在更新,可以更新表1,但速度不快!!!!! 
          sql   =   new   OleDbCommandBuilder(OleAdapter); 
 OleAdapter.Update(b1_Dataset,表1);   
 我想通过(Datatable和tempDataSet.Tables[0]结构一样,合并后 
 Datatable有数据)   合并数据 
 Datatable.Merge(tempDataSet.Tables[0],   true); 
 在用下面方法更新表1不成功 
 sql   =   new   OleDbCommandBuilder(OleAdapter); 
 OleAdapter.Update(b1_Dataset,表1);   
 期待高手指点迷经,谢谢!!
------解决方案--------------------使用SqlAdapter.Fill的话,所填充的DataTable中的DataRow的RowState都是Unchanged (没有变化),对该DataTable马上进行Update的话,是不会更新数据库的   
 你的第一个做法是把数据复制后Rows.Add到另外一个DataTable里面去,这些新的DataRow的RowState都是Added,所以在之后Update的话,就添加到服务器端的数据表里去了   
 但你的第二个做法并没有改变DataRow的RowState,它们还是Unchanged (没有变化),所以更新不起作用,所以我建议对tempDataSet.Tables[0]的的RowState做改动。在2.0下,可以这么做   
 foreach (DataRow dr in tempDataSet.Tables[0].Rows) 
 	{ 
 		dr.SetAdded(); 
 	}   
 然后更新