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

运用SQL事务出错

2012-12-28 
使用SQL事务出错代码如下:Using Trans As SqlTransaction con.BeginTransaction()Dim cmd As SqlCommand

使用SQL事务出错
代码如下:
Using Trans As SqlTransaction = con.BeginTransaction()
                Dim cmd As SqlCommand = con.CreateCommand
                cmd.Transaction = Trans
                For I As Integer = 0 To 1
                    cmd.CommandText = "create table TT(F1 int,F2 int)"
                    Try
                        cmd.ExecuteNonQuery()
                    Catch ex As Exception

                    End Try
                Next
                Trans.Commit() ‘运行到此,错误提示:此 SqlTransaction 已完成;它再也无法使用
End Using



请问这是为什么?怎么解决呢?
[解决办法]
Transaction开始了吗?
[解决办法]
Using Trans As SqlTransaction = con.BeginTransaction() 这句话就表明已经开始了,
[解决办法]
1 确认con已经打开

2 确认SqlCommand 是否创建成功

3 对con的状态那一块多注意一下 看看 con是否过早的关闭了?
[解决办法]
调试的时候看con和trans变量的值。看看他什么时候关的。
[解决办法]

For I As Integer = 0 To 1
  cmd.CommandText = "create table TT(F1 int,F2 int)"
  Try
cmd.ExecuteNonQuery()

如果把上面换成

cmd.CommandText = "create table TT(F1 int,F2 int)"
cmd.ExecuteNonQuery()
cmd.CommandText = "create table TT2(F1 int,F2 int)"
cmd.ExecuteNonQuery()

这样是不会出错的


[解决办法]
For I As Integer = 0 To 1
  cmd.CommandText = "create table TT(F1 int,F2 int)"  是不是table名称重复了。
[解决办法]
cmd.CommandText = "create table TT(F1 int,F2 int);"
试试
[解决办法]

引用:
For I As Integer = 0 To 1
  cmd.CommandText = "create table TT(F1 int,F2 int)"
  Try
cmd.ExecuteNonQuery()

如果把上面换成

cmd.CommandText = "create table TT(F1 int,F2 int)"
cmd.ExecuteNonQuery()
c……


For I As Integer = 0 To 1


  cmd.CommandText = "create table TT(F1 int,F2 int)"
[解决办法]
该回复于2012-10-26 08:36:13被版主删除
[解决办法]
你的事务只是为了创建一张表啊
[解决办法]
只是拿创建表来举个例子

热点排行