首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2012-02-10 
保存DataGridView中更新数据至数据源时可否与事务挂钩?SqlStrselect*fromiepasah MyDataAdapterSalaryI

保存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就保存一下(根据条件可以选择是不是保存,比如先写的非主键的数据,这时主键数据是空的,这个时候就可以先不保存到数据库)

热点排行