已知有一个dataset ,知道select 语句,知道连接串。
dataset的数据邦定到一个表格,如何修改表格的数据更新到数据库。

解决方案 »

  1.   

     string connStr = "data source=.;initial catalog=Northwind;user id=sa;password=password";//连接字符串
     SqlConnection conn = new SqlConnection(connStr);创建链接
    string svSql = "select * from CL";//select语句
                SqlDataAdapter da;//数据适配器
                SqlCommandBuilder scdb;//命令缓存
                try
                {
                    if (conn.State != ConnectionState.Open)
                    {
                        conn.Open();//打开链接
                    }
                    da = new SqlDataAdapter(svSql, conn);
                    scdb = new SqlCommandBuilder(da);
                    if (this._ds.HasChanges())
                    {
                        da.Update(_ds);//更新
                        _ds.AcceptChanges();//提交更改
                    }
                }
                catch (Exception er)
                {
                    MessageBox.Show(er.Message);
                }
                finally
                {
                    da = null;
                    conn.Close();
                }
      

  2.   


    这样不行的。 insertcommand,deletecommand,updatecommand都没有指定。系统怎么能更新呢??
      

  3.   

    1、Update 方法可调用来将 DataSet 中的更改解析回数据源。当调用 Update 方法时,DataAdapter 将分析已作出的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。当 DataAdapter 遇到对 DataRow 的更改时,它将使用 InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。
    2、SqlDataAdapter catDA = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", nwindConn);       catDA.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +
                                         "WHERE CategoryID = @CategoryID" , nwindConn);
    catDA.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");
    SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@CategoryID", SqlDbType.Int);
    workParm.SourceColumn = "CategoryID";
    workParm.SourceVersion = DataRowVersion.Original;
    DataSet catDS = new DataSet();
    catDA.Fill(catDS, "Categories");   
    DataRow cRow = catDS.Tables["Categories"].Rows[0];
    cRow["CategoryName"] = "New Category";
    catDA.Update(catDS);
      

  4.   

    可以先把表格里的内容传到窗体上的控件上如:textbox ,然后修改 ,保存到数据库
      

  5.   


    更新出现错误:
    Update 无法找到 TableMapping['Table'] 或 DataTable“Table”。大家看看跟踪时adapter的结果:ada {System.Data.SqlClient.SqlDataAdapter} System.Data.SqlClient.SqlDataAdapter
    base {System.Data.SqlClient.SqlDataAdapter} System.Data.Common.DbDataAdapter
    DeleteCommand null System.Data.SqlClient.SqlCommand
    InsertCommand null System.Data.SqlClient.SqlCommand
    SelectCommand {System.Data.SqlClient.SqlCommand} System.Data.SqlClient.SqlCommand
    UpdateBatchSize 1 int
    UpdateCommand null System.Data.SqlClient.SqlCommand从跟踪的结果来看,没有指定deletecommand,insertcommand,updatecommand