并发冲突问题---急急急----加加加

boys 2004-09-09 06:13:13
vb.net窗体的DataGrid中
Dim sqlDA = New SqlCommandBuilder(DA_A) 'DA_HeTong-SqlDataAdapter
DA_A.Update(DataTable1)


我的表中有ID索引
有时候就没问题,有时候就会出现并发冲突(只有一个用户用),
出现问题后显示
并发冲突,Updatecommand影响0个记录!
然后DataGrid记录前出现红色的“!”号

很郁闷,请高手指教!
...全文
292 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kissnono 2004-09-10
  • 打赏
  • 举报
回复
这个可能是你对数据集的操作有误.
例如:先添加一条记录,然后再把这条记录删除,就会出现这种错误.
TonyTonyQ 2004-09-10
  • 打赏
  • 举报
回复
如果只有一个用户用的时候就有问题,并且保证你的程序同一时间只有一个线程访问数据库的话,那就可能是你SQL语句上的问题了,要仔细检查了。
TonyTonyQ 2004-09-10
  • 打赏
  • 举报
回复
用事务处理来解决,很简单的问题。使用.net的SqlTransaction类来实现
下列範例會建立 SqlConnection 和 SqlTransaction 。它也說明如何使用 BeginTransaction 、 Commit 和 Rollback 方法。

Public Sub RunSqlTransaction(myConnString As String)
Dim myConnection As New SqlConnection(myConnString)
myConnection.Open()

Dim myCommand As SqlCommand = myConnection.CreateCommand()
Dim myTrans As SqlTransaction

' Start a local transaction
myTrans = myConnection.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction
myCommand.Connection = myConnection
myCommand.Transaction = myTrans

Try
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
myCommand.ExecuteNonQuery()
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
myCommand.ExecuteNonQuery()
myTrans.Commit()
Console.WriteLine("Both records are written to database.")
Catch e As Exception
Try
myTrans.Rollback()
Catch ex As SqlException
If Not myTrans.Connection Is Nothing Then
Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
" was encountered while attempting to roll back the transaction.")
End If
End Try

Console.WriteLine("An exception of type " & e.GetType().ToString() & _
"was encountered while inserting the data.")
Console.WriteLine("Neither record was written to database.")
Finally
myConnection.Close()
End Try
End Sub 'RunSqlTransaction
myhgo 2004-09-10
  • 打赏
  • 举报
回复
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkhandlingconcurrencyexception.htm
yingshis 2004-09-10
  • 打赏
  • 举报
回复
up
3tzjq 2004-09-10
  • 打赏
  • 举报
回复
使用事务处理吧!也有可能是你的Update的CommandText有问题(Where 后面部分)。
bitsbird 2004-09-10
  • 打赏
  • 举报
回复
DataSet.AcceptChanges()
swiminfish_9999 2004-09-10
  • 打赏
  • 举报
回复
我也遇到过同样的问题,不过一般是由于两个用户同时对数据进行超作引起的,你看看你打开数据源使用后有没有关闭连接 conn.close . 不排除这种可能.
fuzhenyu999999 2004-09-10
  • 打赏
  • 举报
回复
是否在改变主键值时使用了相同值
The123 2004-09-09
  • 打赏
  • 举报
回复
DA_A.Update(DataTable1.Select(Nothing, Nothing, DataViewRowState.Deleted))
DA_A.Update(DataTable1.Select(Nothing, Nothing, DataViewRowState.ModifiedCurrent))
DA_A.Update(DataTable1.Select(Nothing, Nothing, DataViewRowState.Added))

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧