取您帮定的数据集ds
DataSet dschange = ds.GetChanges();然后用适配器update();

解决方案 »

  1.   

    老大们不行啊!!!
    我是用Botton2来把修改的数据上传到数据库中,帮我把代码写全了,谢谢!!
    private void button2_Click(object sender, System.EventArgs e)
    {}
      

  2.   

    http://coder.ylqh.com/share/index.htm
    随便下载一个吧。然后自己研究。
      

  3.   

    这是我以前的一个发票数据更新程序,直接编辑datagrid单元格中的数据,然后点击“保存”按钮
    数据库就更新了,用的Access数据库,虽然数据库表字段名都是中文感觉傻傻的,但还是好用,绝对好用,你自己根据自己的不同数据库类型做适当修改吧,你在“保存”按钮的事件里面调用这个方法就可以了。看准了有DataRowVersion.Original和DataRowVersion.Current两种类型。
    private void UpdateInvoice()
    {
    string Upt="UPDATE invoice SET 购货单位=@购货单位,日期=@日期,货名及规格=@货名及规格,单位=@单位,数量=@数量,单价=@单价,金额=@金额,已报销=@已报销,图片名称=@图片名称,备注=@备注 WHERE 编号=@编号";
    da.UpdateCommand=new OleDbCommand(Upt,conn);
    OleDbParameter Para;
    //下面这些参数添加的先后顺序一定要和SQL语句中的顺序一致,其中WHERE子句中的参数位于最后,也就是要严格一致才行!
    Para=da.UpdateCommand.Parameters.Add("@购货单位",OleDbType.Char);
    Para.SourceColumn="购货单位";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@日期",OleDbType.Char);
    Para.SourceColumn="日期";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@货名及规格",OleDbType.Char);
    Para.SourceColumn="货名及规格";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@单位",OleDbType.Char);
    Para.SourceColumn="单位";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@数量",OleDbType.Char);
    Para.SourceColumn="数量";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@单价",OleDbType.Char);
    Para.SourceColumn="单价";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@金额",OleDbType.Char);
    Para.SourceColumn="金额";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@已报销",OleDbType.Char);
    Para.SourceColumn="已报销";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@图片名称",OleDbType.Char);
    Para.SourceColumn="图片名称";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@备注",OleDbType.Char);
    Para.SourceColumn="备注";
    Para.SourceVersion=DataRowVersion.Current;
    Para=da.UpdateCommand.Parameters.Add("@编号",OleDbType.BigInt);
    Para.SourceColumn="编号";
    Para.SourceVersion=DataRowVersion.Original;
    if(MessageBox.Show("你真的要保存对数据库所做的更改吗?","确认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
    {
    da.Update(ds,"invoice");
    dataGridInvoice.SetDataBinding(ds,"invoice");
    }
    }
      

  4.   

    其中da和ds都是全局变量,你自己看着怎么合适怎么来吧。
      

  5.   

    你这应该是在DataGrid中,添加了按钮键吧!!!那是对每一行进行修改!!但这只是对WEB窗体的了!!我要的是在WINDOWS窗体进行的修改的!!运行时可直接在DataGrid上进行修改!!而且我的绑定都是用代码和存贮过程来完成的,并不是在页面上拖入sqlDataAdapter,所以上传到数据库中的代码不知道怎么写了!!!
    帮帮忙了,各位高手们!!
      

  6.   

    // private SqlTransaction trans;  这是全局变量
    DadaRow[] rows = 根据RowStatus获取修改过的纪录, 一时忘记详细的代码,现在的机子没装.Netforeach(DataRow row in rows)
    {
    SqlCommand cmd=new SqlCommand(); 
    cmd.Connection=this.conn ;
    if(inTransaction) cmd.Transaction=trans; 
    cmd.CommandText="UPDATE table SET field1=@field1 ... WHERE ...";
    cmd.Parameters.Add("@field1 ",row["field1"]);
    ...
    cmd.ExecuteNonQuery();
    }
      

  7.   

    我的代码本来就是在Windows窗体中进行修改的代码,你用存储过程也一样啊,只不过是调用方式变一下,你照样可以添加参数啊,还有那个sqlDataAdapter,你怎么就知道我是拖入进去的?我就是用代码直接实例化的啊,我只是给了你一些关键代码而已。
      

  8.   

    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
      

  9.   

    第一次在CSDN上发贴!!谢谢大家的帮忙!!