用SqlCommandBuilder,不需要自己写insertcommand、deletecommand、updatecommand。
看MSDN上的例子,很简单。

解决方案 »

  1.   

    //定义连接数据库的变量
    System.Data.DataSet myDataSet;
    System.Data.DataSet ds;
    System.Data.SqlClient.SqlConnection myConnection;
    System.Data.SqlClient.SqlDataAdapter myDataAdapter;
    SqlCommandBuilder mySqlCb;
    //连接数据库1//
    string strConn="uid=sa ; pwd=yourpassword ; initial catalog=yourdb ;datasource= ; Connect Timeout=30";
    myConnection = new SqlConnection(strConn);//
    sql="SELECT staffer.*, dept.* FROM staffer INNER JOIN dept ON staffer.dept_id = dept.id"
    myDataSet = new DataSet ();
    myDataAdapter = new SqlDataAdapter(strCom,myConnection);
    myDataAdapter.Fill (myDataSet,"staffer_dept");//将datagird绑定到数据
    dataGrid.SetDataBinding(myDataSet,"staffer_dept");//在datagrid中修改或者增加一行
    **********************
    //更新数据
    try
    {
       mySqlCb = new SqlCommandBuilder(myDataAdapter);
       myDataAdapter.Update(myDataSet,"t_b_wz_stuffinfo");
    }
    catch (System.Data.SqlClient.SqlException err)
    {
        MessageBox.Show("更新失败。错误信息:"+err.Message+"请重新进行正确的操作","系统");
    }
    }
      

  2.   

    刚才写错了,应该是这个:
    mySqlCb = new SqlCommandBuilder(myDataAdapter);
    myDataAdapter.Update(myDataSet,"staffer_dept");
                                    ~~~~~~~~~~~~~一开始在dataset中的数据表的别名.
      

  3.   

    要更新做视图就不管用了.哪只有些sql了.
      

  4.   

    怎么写sql呀,大虾指点迷津!感谢!