我再详细说明一下:
例如:
我们可以通过 WebService 返回一个数据集到客户端:
public DataSet RetrieveData();      //返回数据集,到了客户端我们可以把它装到 Table 中去编辑。
public bool DeleteData(string ID);  //删除表中指定记录
public bool UpdateData(DataSet);    //更新数据集,我目前用的是先 Delete ,再 Insert 到表中。大家讨论一下关于更新数据集,各位还有什么更好的方法吗?

解决方案 »

  1.   

    to public bool UpdateData(DataSet); //更新数据集,我目前用的是先 Delete ,再 Insert 到表中。既然是用DataSet作为参数,那么直接用DataAdapter来update数据库,至于如何更新,可以用执行sql语句命令,或者调用存储都行。
      

  2.   

    to Knight94(愚翁) 的意思我明白,可否给出基于 WebService 例子?
    例如:
        [WebMethod]
        public bool SetDS(DataSet ds)  //类似于这种
        {
            return true;
        }
      

  3.   

    sample code as follows:[WebMethod]
    public bool Update( DataSet ds )
    {
    SqlConnection sqlConn = new SqlConnection();
    sqlConn.ConnectionString = yourConnectionString; try
    {
    sqlConn.Open();//Connect to sql server
    }
    catch( Exception err )
    {
    Debug.WriteLine( err.Message );
    return false;
    } SqlDataAdapter myDAdapter = new SqlDataAdapter();
    string strQuery = "Update EmployeeInfo "
    + " SET EmployeeName = @EmployeeName "
    + " WHERE EmployeeID = @EmployeeID "; myDAdapter.UpdateCommand = new SqlCommand( strQuery );
    myDAdapter.UpdateCommand.Connection = sqlConn; myDAdapter.UpdateCommand.Parameters.Add( "@EmployeeName", 
    SqlDbType.VarChar, 20, "EmployeeName" );
    SqlParameter parID = myDAdapter.UpdateCommand.Parameters.Add( "@EmployeeID", 
    SqlDbType.Int );
    parID.SourceColumn = "EmployeeID"; try
    {
    myDAdapter.Update( ds, "EmployeeInfo" );
    myDAdapter.Dispose();
    sqlConn.Close();
    }
    catch( Exception err )
    {
    Debug.WriteLine( err.Message );
    sqlConn.Close();
    return false;
    }
    return true;
    }
      

  4.   

    不过最好把DB操作分离出来,用类库来完成,这样在webservice中代码要简洁一些,且便于维护。
      

  5.   

    我觉得这种方式在开发 WebService / 数据库操作的时候,应该是最常用的。
      

  6.   

    其实在client调用更新方法的时候,可以先调用:
    DataSet ds = previousDS.GetChanges();
    来获得需要更新的记录集,这样可以减少信息传递。
      

  7.   

    Knight94(愚翁) 已给出了很好的经验,非常可取,我本人强烈支持。
      

  8.   

    可以结合XML,记录最后更新的数据的时间,通过判断,来在确定是否要更新.
      

  9.   

    传入dataset
    在服务器端组合sql语句做update