用 SqlCommandBuilder ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemDataSqlClientSqlCommandBuilderClassTopic.htm

解决方案 »

  1.   

    示例
    [Visual Basic, C#, C++] 下面的示例使用 SqlCommand 以及 SqlDataAdapter 和 SqlConnection 从数据源选择行。给该示例传递一个初始化的 DataSet、一个连接字符串、一个查询字符串(它是一个 Transact-SQL SELECT 语句)和一个包含数据库表名称的字符串。然后该示例创建一个 SqlCommandBuilder。[Visual Basic] 
    Public Shared Function SelectSqlSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
        Dim myConn As New SqlConnection(myConnection)
        Dim myDataAdapter As New SqlDataAdapter()
        myDataAdapter.SelectCommand = New SqlCommand(mySelectQuery, myConn)
        Dim cb As SqlCommandBuilder = New SqlCommandBuilder(myDataAdapter)    myConn.Open()    Dim ds As DataSet = New DataSet
        myDataAdapter.Fill(ds, myTableName)    ' Code to modify data in DataSet here     ' Without the SqlCommandBuilder this line would fail.
        myDataAdapter.Update(ds, myTableName)    myConn.Close()
    End Function 'SelectSqlSrvRows[C#] 
    public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName)
    {
       SqlConnection myConn = new SqlConnection(myConnection);
       SqlDataAdapter myDataAdapter = new SqlDataAdapter();
       myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
       SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter);   myConn.Open();   DataSet ds = new DataSet();
       myDataAdapter.Fill(ds, myTableName);   //code to modify data in DataSet here   //Without the SqlCommandBuilder this line would fail
       myDataAdapter.Update(ds, myTableName);   myConn.Close();   return ds;
    }
      

  2.   

    学习!不用update恐怕不行把,即使使用sqldataadapter也是使用update的!
      

  3.   

    UP
    楼上方法,我已经试过了。但无法做到通用性!!!
    这样会对每一SQL语句,要写UPDATE table set ** where SQL 语句;有没有象DELPHI中table 控件啊???????
      

  4.   

    上面的代码哪里有update语句啦,SqlCommandBuilder 就是用来帮你生成的update语句的,不用你自己写.你真的这是过?
      

  5.   

    up
    如果是多个SQL语句,数据适配器.UPDATE 就会报错了
    this.oleDbDataAdapter1 .SelectCommand.CommandText=this.richTextBox1 .Text .Trim ();//动态导入SQL语句
    ds=new DataSet ();
                
    this.oleDbDataAdapter1 .Fill (this.ds  );
                
    this.dataGrid1 .DataSource =this.ds.Tables[0]   ;
    //this.dataSet1.Clear ();
    this.oleDbConnection1 .Close ();//------------------------------------
    this.oleDbDataAdapter1 .Update(this.ds );
    this.ds.Clear ();
    this.ds.Dispose();
    this.oleDbConnection1 .Close ();
    1. select * from a//第一次可以更新数据库
    2. select * from b//第二次就要保存,发现oleDbDataAdapter1中字段还是A 表字段
    我是想公用一个oleDbDataAdapter1 或则寻求数据绑定更好办法
      多帮忙!!!