我的SQL SERVER2005中有表1,表2,表3,现需要一个更新数据库的类(如:UPDATESQL(DataSet ds)),
要求实现下述功能:一次性将SQL2005中的 表2,表3 中的记录读入DATASET (如DS1),然后再将DS1中的某些记录值改变后,
 通过该类更新SQL2005数据(如:调用UPDATESQL(DS1))。/////////////问题:UPDATESQL(DataSet ds)
{
 这里的内容如何写呢?}
请大峡帮忙。

解决方案 »

  1.   

    使用SqlDataAdapter.Update(DataSet)方法
      

  2.   

    我是通过WEBSERVICE,客户端只传递DATASET给WEBSERVICE,具体如何写Update(DataSet) 呢?
      

  3.   

    我找到了一个例子,可是只能更新一个DATASET中的特定的表,例子如下:
    ////////////using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace winApplication {      public class sqlAccess      {          //与SQL Server的连接字符串设置          private string _connString;          private string _strSql; 
     
             private SqlCommandBuilder sqlCmdBuilder;          private DataSet ds = new DataSet();          private SqlDataAdapter da;          public sqlAccess(string connString,string strSql)          {               this._connString=connString;          } 
     
             private SqlConnection GetConn()          {               try               {                    SqlConnection Connection = new SqlConnection(this._connString);                    Connection.Open();                    return Connection;               }               catch (Exception ex)               {                    MessageBox.Show(ex.Message,"数据库连接失败");                    throw;               }          } 
     
             //根据输入的SQL语句检索数据库数据          public DataSet SelectDb(string strSql,string strTableName)          {               try               {               this._strSql = strSql;               this.da = new SqlDataAdapter(this._strSql,this.GetConn());               this.ds.Clear();               this.da.Fill(ds,strTableName);               return ds;//返回填充了数据的DataSet,其中数据表以strTableName给出的字符串命名               }               catch (Exception ex)               {                    MessageBox.Show(ex.Message,"数据库操作失败");                    throw;               }          } 
     
             //数据库数据更新(传DataSet和DataTable的对象)          public DataSet UpdateDs(DataSet changedDs,string tableName)          {               try               {               this.da = new SqlDataAdapter(this._strSql,this.GetConn());               this.sqlCmdBuilder = new SqlCommandBuilder(da);               this.da.Update(changedDs,tableName);               changedDs.AcceptChanges();               return changedDs;//返回更新了的数据库表               }               catch (Exception ex)               {                    MessageBox.Show(ex.Message,"数据库更新失败");                    throw;               }                     } ////////////
    如何更改上述例子,不用UpdateDs(DataSet changedDs,string tableName) 一次更新一个表,而要使其可以一次性更改两个以上的表:如DATASET 中有两个表,而更新时只要执行Update(DATASET )即可同时更新数据库中的两个表。如何改呢?
      

  4.   

    DataSet的Update只能更新到数据库中的一个表中,
    也就是说DS中填充的数据源不能是交叉查询得到的.要不然只能分别更新那两个table了.
      

  5.   

    如果数据源 查询为 select * from table1 where id=1 和select * from table2 where myid>3
    ,查询出后做了相应的改变,如何一次性 Update(DS) 啊?
    ////////////////////////////////////////////////////////
    注意:我没有用到交叉查询!!!!
      

  6.   

    DataSet UpdateDs(DataSet changedDs,string tableName) 如何改为DataSet UpdateDs(DataSet changedDs) ,而changedDs中包含2个以上的表。?