保存DataGridView中更新数据至数据源时可否与事务挂钩?该怎么解决

保存DataGridView中更新数据至数据源时可否与事务挂钩?
SqlStr   =   "select   *   from   iepasah "
                MyDataAdapterSalaryItemSet.SelectCommand.CommandText   =   SqlStr
                MyDataAdapterSalaryItemSet.Fill(MyDataSet,   "tabpasah ")                   BindingSourceSalaryItemSet   =   New   BindingSource(MyDataSet,   "tabpasah ")
                dgvSalaryItemSet.AutoGenerateColumns   =   False  
                dgvSalaryItemSet.DataSource   =   BindingSourceSalaryItemSet
用以上方法把DataGridView邦定后,当修改了两行数据,而其中一行数据有误时,就只能保存一条记录到数据源

现在我想实现当有错误发生时,所修改的记录全部回滚,也就是要就全保存要就全部不保存。
请各位帮忙想想办法

------解决方案--------------------
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/TransactionControl.mspx?mfr=true
------解决方案--------------------
要不用存储过程
要不用事务
你这种情况一般是先检查数据确保不出错,然后再一次提交

------解决方案--------------------
能够使用事务

Dim Trans As OleDb.OleDbTransaction '事务处理
OleComm = New OleDb.OleDbCommand
Trans = OledbS.BeginTransaction‘OleDb.OleDbConnection
OleComm.Transaction = Trans

Try
....... '正常的数据库操作
Catch ex As Exception
Trans.Rollback() '遇到错误回滚
End Try
------解决方案--------------------
自己写SQL语句也不会麻烦到哪去吧?
而且系统生成的代码有时候还会出错吧
------解决方案--------------------
这个我是这样做的

在datagridview中 修改一次数据就更新一下数据库(根据条件可以选择是不是真的更新数据库)

像你说的一次修改好几行 我觉得这个删除操作吧 可以多选,这个你可以用个循环 一条一条的删除。像编辑、添加这样的都可以修改一个cell就保存一下(根据条件可以选择是不是保存,比如先写的非主键的数据,这时主键数据是空的,这个时候就可以先不保存到数据库)