代码如下:
public DataSet UpdateByDataSet(DataSet ds)
{      
     SqlCommand myCommand = new SqlCommand("select * from financetable", conn);   
     SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );  
     SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);     
     myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
     myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
     myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
   try
{
             conn.Open();
              myAdapter.Fill(ds);
              myAdapter.Update(ds,"financetable" );  //这里报错  Update 无法找到 TableMapping['financetable'] 或 DataTable“financetable”
              conn.Close();
       
}
catch(Exception err)
{
    err.ToString();
      conn.Close(); 
}
   return ds;
}

解决方案 »

  1.   

    你这个方法没有定义Dataset,或者DataSet的访问级别限制导致你的方法访问不了DataSet
      

  2.   

    定义Dataset实例 然后再填充表格
      

  3.   

    myAdapter.Fill(ds,"financetable");myAdapter.Fill(ds); //改成上面哪句
      myAdapter.Update(ds,"financetable" ); //这里报错 Update 无法找到 TableMapping['financetable'] 或 DataTable“financetable”
      

  4.   

    Form代码改为:
    DataSet ds = new DataSet();
    ds.Tables.Add("financetable");
    da.UpdateByDataSet(ds);
    程序不报错,但是数据库数据并没有得到修改啊?
      

  5.   

    myAdapter.Fill(ds,"financetable");myAdapter.Fill(ds); //改成上面哪句
      

  6.   

    你都没定义update的command怎么让数据库update
      

  7.   

    update的command不是sqlcommandbuilder自动生成的吗?我要怎么定义?
      

  8.   


    myAdapter.Fill(ds); //填充查询数据至数据集
    myAdapter.Update(ds,"financetable" );  //Update方法是根据DataTable里的行状态来提交数据的,你的数据自上次填充后,无任何变化(没有新增,也没有删除和修改)。即里面所有行的DataRow.RowState 都是NoChangedDataRow.RowState
      

  9.   

    你要绑定Datagridview后,修改单元格值,更新就更改了。。
      

  10.   


    数据集连数据都还没有呢绑定什么呢?你先看看你的方法是否能访问DataSet数据集就行了。根据你的方法,你的代码要这样修改:
    SqlConnection conn=new SqlConnection(connstr);
    DataSet ds=new Dataset();
    ds=UpdateByDataSet(ds);  //不知道你的方法是怎么写的~~·~~~~~~
      

  11.   

    myAdapter.Fill(ds,"financetable");然后
    写个插入一句执行update肯定没问题
      

  12.   

     myAdapter.Fill(ds,"financetable");
    //接下句,绑定界面上的DataGridView控件。。
    datagridview1.datasource=ds.tables["financetable"]//中间你要在datagridview更改数据后,再操作这条语句才有效果,这条语句写在[保存更新]的按钮事件中。。
    //myAdapter变量应该定义为类变量,声明在页首
    //点击保存按钮后执行下句。。
     myAdapter.Update(ds,"financetable" );
      

  13.   

    保存按钮代码:
     private void bt_save_Click(object sender, EventArgs e)
            {
                DataSet ds = new DataSet();
                SqlDataAdapter myAdapter=new SqlDataAdapter();
                ds=da.UpdateByDataSet(ds, "financetable");
                myAdapter.Update(ds, "financetable");
                dataGridView1.DataSource = ds.Tables["financetable"];
            }UpdateByDataSet代码:
    public DataSet  UpdateByDataSet(DataSet ds,string tbname)
    {      
         SqlCommand myCommand = new SqlCommand("select * from financetable", conn);   
         SqlDataAdapter myAdapter = new SqlDataAdapter(myCommand );  
         SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
         //DataSet daset=new DataSet();
         myAdapter.InsertCommand = myCommandBuilder .GetInsertCommand();
         myAdapter.UpdateCommand = myCommandBuilder .GetUpdateCommand();
         myAdapter.DeleteCommand = myCommandBuilder .GetDeleteCommand();
         DataTable tb = null;
         tb = ds.Tables["financetable"];  
       try
    {
            conn.Open();
                  myAdapter.Fill(ds,"financetable");
                  myAdapter.Update(ds, "financetable");  
                  conn.Close();
     }
       catch(Exception err)
    {
        err.ToString();
          conn.Close(); 
    }
       return ds;
    }哪里出问题了,貌似是datagridview数据改变后,dataTable值没有变化,要怎么修改?
      

  14.   

    在更新前先设置一条DBGRIDVIEW的数据源属性
      

  15.   

    访问不到ds,可在try中声明一次或者去掉try{}