看了很多书和范例,对了dataset,adapter的使用还是有些困惑!!1、看书上的例子,是修改了dataset中的table的行后,直接就使用adapter.update()了,结果一运行就说需要相应的command,没办法,看帮助2、帮助上是
adapter.UpdateCommand = new OleDbCommand(
        "UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
        "WHERE CustomerID = ?");
然后下面许多的adapter.UpdateCommand.Parameters.Add()
这也太麻烦了吧,如果我的表有50个字段,那保存时不是要写50行以上的代码,有点夸张。3、然后就是看了一些例子,也基本都是直接写好SQL语句然后来运行,并不是直接保存dataset的数据。我的想法是使用adapter.fill来填充好一个Dataset,然后绑定到datagridview,然后用户修改了表格数据后点击一个"保存"按钮就直接保存了,最好不要再写一遍SQL或是加一堆的parameters。
不知道大家一些用的是哪种保存数据的方法???

解决方案 »

  1.   

    循环去读DataSet的结构,动态组成SQL语句。。再执行一下
      

  2.   

    那你就直接用数据控件在绑定吧,不是有吗,objectdatasouses吧,你看一下,那样查询都可以省了,还有别的数据绑定控件也可以做到
      

  3.   

    adapter.update(数据table)
    不用一个一个的些, 可以直接更新一个table
    如果有条件或者只更新几个, 你可以直接在dataset里头写一个sql command,
    就可以用adapter.你自己写的(); 
      

  4.   

    执行一条SQL语句就可以了,简单。不要使用DataAdapter保存,会很麻烦的。
      

  5.   

    如果像insert 或者是update这样的sql语句,系统是可以自动生成的.
      

  6.   

    能否给几个实例呢??最好是直接更新table的比较好,象楼上的
    adapter.update(数据table),
    adapter是怎样生成的??
      

  7.   

    使用adapter.fill来填充好一个Dataset,然后绑定到datagridview,然后用户修改了表格数据后点击一个"保存"按钮:
    "保存"按钮的方法代码里写:
      SqlCommandBuilder  SQLcmdBld = new SqlCommandBuilder(adapter);//自动重建了Command
      adapter.Update(Dataset.Tables[0]);//数据保存到数据库
      
      

  8.   

    看到了,msdn里有完整的例子。谢谢Qzh7523public static DataSet SelectSqlRows(string connectionString,
        string queryString, string tableName)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(queryString, connection);
            SqlCommandBuilder builder = new SqlCommandBuilder(adapter);        connection.Open();        DataSet dataSet = new DataSet();
            adapter.Fill(dataSet, tableName);        //code to modify data in DataSet here        builder.GetUpdateCommand();        //Without the SqlCommandBuilder this line would fail
            adapter.Update(dataSet, tableName);        return dataSet;
        }
    }