Foxtable(狐表)用户栏目专家坐堂 → 关于 sqlBulkCopy 执行报错【已解决】


  共有1369人关注过本帖树形打印复制链接

主题:关于 sqlBulkCopy 执行报错【已解决】

帅哥哟,离线,有人找我吗?
km007
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:441 积分:5294 威望:0 精华:0 注册:2016/1/28 2:59:00
关于 sqlBulkCopy 执行报错【已解决】  发帖心情 Post By:2023/9/21 11:53:00 [只看该作者]

Dim dt As DataTable = DataTables("TableA") 
Dim conStr As String = "server=192.168.0.100,1433;uid=sa;pwd=Aa123456;database=ceshi2023" 

Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As New System.Data.SqlClient.SqlConnection(conStr)


Try
    Dim st As Date = Date.Now '计算耗时
    conn.Open() '执行到这里会报错


此主题相关图片如下:微信图片_20230921114937.png
按此在新窗口浏览图片
[此贴子已经被作者于2023/9/21 14:42:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/21 12:00:00 [只看该作者]

如果连接字符串没有问题,这句代码不可能出错的,检查其它代码

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:441 积分:5294 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2023/9/21 13:52:00 [只看该作者]

Dim dt As DataTable = DataTables("TableA") 
Dim conStr As String = "server=192.168.0.100,1433;uid=sa;pwd=Aa123456;database=ceshi2023" 

Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As New System.Data.SqlClient.SqlConnection(conStr)

Try
    Dim st As Date = Date.Now '计算耗时
    conn.Open() 

……

Catch ex As exception

    tran.Rollback()       '找到原因了,是这句报的错

    MessageBox.Show("批量插入失败,原因:" & ex.message)
Finally
    conn.Close() '必须关闭,否则内存会一直泄露
End Try

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/21 13:54:00 [只看该作者]

这个代码根本就没有用到事务,去掉即可

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:441 积分:5294 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2023/9/21 13:56:00 [只看该作者]

Dim dt As DataTable = DataTables("TableA") 
Dim conStr As String = "server=192.168.0.100,1433;uid=sa;pwd=Aa123456;database=ceshi2023" 

Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As New System.Data.SqlClient.SqlConnection(conStr)

Try
    Dim st As Date = Date.Now '计算耗时
    conn.Open() 
    tran = conn.BeginTransaction()'开始事务
……

Catch ex As exception

    tran.Rollback()       '找到原因了,是这句报的错

    MessageBox.Show("批量插入失败,原因:" & ex.message)
Finally
    conn.Close() '必须关闭,否则内存会一直泄露
End Try

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107323 积分:545876 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/21 14:05:00 [只看该作者]


Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As New System.Data.SqlClient.SqlConnection(conStr)
    Dim st As Date = Date.Now '计算耗时
    conn.Open() 
    tran = conn.BeginTransaction()'开始事务
Try

 回到顶部
帅哥哟,离线,有人找我吗?
km007
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:441 积分:5294 威望:0 精华:0 注册:2016/1/28 2:59:00
  发帖心情 Post By:2023/9/21 14:13:00 [只看该作者]

解决了

Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As New System.Data.SqlClient.SqlConnection(conStr)

Try
    conn.Open() '打开链接
Catch ex As exception
    conn.Close() '必须关闭,否则内存会一直泄露
    MessageBox.Show("链接服务器失败,原因:" & ex.message)
    Return Nothing
End Try

Try
    Dim st As Date = Date.Now '计算耗时
    tran = conn.BeginTransaction()'开始事务

 回到顶部