Sql server 引发异常:system.data.dll中的system.data.sqlclient.sqlexception

Sql server 引发异常:system.data.dll中的system.data.sqlclient.sqlexception,sql-server,vb.net,Sql Server,Vb.net,我正在用vb.net处理sql server中的大型数据表。我正在将文本文件中的数据提取到sql server中的datatable中,并通过多个sql更新查询更新datatable。我迭代了整个提取和更新过程的次数,比如说100次,以满足我的算法的要求。在每次迭代中,从文本文件中提取新数据,并相应地更新datatable。对于有限的迭代次数(比如20次),这个过程对我来说很好。之后,我发现Visual Studio 2015的即时窗口中写入了错误“抛出异常:system.data.sqlcli

我正在用vb.net处理sql server中的大型数据表。我正在将文本文件中的数据提取到sql server中的datatable中,并通过多个sql更新查询更新datatable。我迭代了整个提取和更新过程的次数,比如说100次,以满足我的算法的要求。在每次迭代中,从文本文件中提取新数据,并相应地更新datatable。对于有限的迭代次数(比如20次),这个过程对我来说很好。之后,我发现Visual Studio 2015的即时窗口中写入了错误“抛出异常:system.data.sqlclient.sqlexception in system.data.dll”。但是模块没有中断或停止,它只会挂起更长的时间。在那之后,几次迭代以正常速度运行。在几次迭代之后,同样的错误和执行速度也同样缓慢。随后,每次迭代都变得太慢,需要一些注意和补救措施。我真的被困在这里了。这是我的密码:

Public connectionString As String=“数据源=(LocalDB)\MSSQLLocalDB;AttachDbFilename=| DataDirectory | \Main Data.mdf;集成安全性=True”
公共con作为SqlConnection
私有子btnOk_Click(发送者作为对象,e作为事件参数)处理btnOk。单击
作为整数的Dim i
con=新的SqlConnection(connectionString)
con.Open()
对于i=1到100
SimVehRecord(主数据集、Sim\u-VehRecordTableAdapter)
“其他功能
下一个
con.Close()
con.Dispose()
端接头
函数SimVehRecord(ByVal ds作为主数据集,ByVal ta作为主数据集适配器。Sim_VehRecordTableAdapter)
Dim TBLREADCVSV作为新数据表()
tblReadCSV.Columns.Add(“模拟时间”)
tblReadCSV.Columns.Add(“车辆号”)
tblReadCSV.Columns.Add(“链接号”)
TBLREADCVSV.Columns.Add(“车道号”)
tblReadCSV.Columns.Add(“位置”)
Dim csvParser作为新的FileIO.TextFieldParser(“C:\Users\user\Desktop\Aus\Result Output\Rom001.fzp”)
csvParser.TextFieldType=FileIO.FieldType.Delimited
csvParser.SetDelimiters(“;”)
csvParser.TrimWhiteSpace=True
尝试
而不是(csvParser.EndOfData=True)
tblReadCSV.Rows.Add(csvParser.ReadFields())
结束时
csvParser.Close()
csvParser.Dispose()
Dim cmdText As String=“截断表格[Sim VehRecord]”
使用cmd=newsqlcommand(cmdText,con)
cmd.CommandTimeout=3600
cmd.ExecuteNonQuery()
终端使用
将bulkcopy用作新的SqlBulkCopy(con)
bulkcopy.DestinationTableName=“[Sim VehRecord]”
bulkcopy.ColumnMappings.Add(“模拟时间”、“模拟时间(秒)”)
bulkcopy.ColumnMappings.Add(“车辆号”、“车辆号”)
bulkcopy.ColumnMappings.Add(“链接号”、“链接号”)
bulkcopy.ColumnMappings.Add(“车道号”、“车道号”)
bulkcopy.ColumnMappings.Add(“位置”,“位置(m)”)
bulkcopy.BatchSize=50000
bulkcopy.WriteToServer(tblReadCSV)
终端使用
tblReadCSV.Dispose()
GetDensity()
捕获ex作为SqlException
MessageBox.Show(例如Message)
结束尝试
返回ds
端函数
私有子密度()
尝试
Dim cmdText As String=,SimVehRecord As
(选择[记录ID]、[模拟时间(秒)]、[位置(米)],
滞后([Position(m)])超过(按[Veh No]顺序划分[Sim Time(sec)]ASC)作为上一个位置,
延迟([Sim时间(秒)])超过(按[Veh No]顺序划分为[Sim时间(秒)]ASC)作为上一个时间
来自[Sim-VehRecord])
更新[Sim卡记录]
设置[速度(公里/小时)]=IIF((3.6*ISNULL((SimVehRecord.[位置(m)]-SimVehRecord.prev_posn)/(SimVehRecord.[模拟时间(秒)]-SimVehRecord.prev_时间),0))>0,(3.6*ISNULL((SimVehRecord.[位置(m)]-SimVehRecord.prev_posn)/(SimVehRecord.[模拟时间(秒)]-SimVehRecord.prev_时间),0)),0)
来自[模拟视频记录]
内连接SimVehRecord
在[Sim卡记录].[Record ID]=Sim卡记录。[记录ID]“
使用cmd=newsqlcommand(cmdText,con)
cmd.CommandTimeout=3600
cmd.ExecuteNonQuery()
终端使用
Dim cmdText1 As String=“更新[Sim VehRecord]
集合[领队车辆编号]=
(从[Sim卡车辆记录]sv中选择顶部1[Veh No]
其中sv.[位置(m)]>[模拟视频记录][位置(m)]
及
sv.[Sim卡时间(秒)]=[Sim卡记录].[Sim卡时间(秒)]
及
sv.[车道编号]=[模拟视频记录].[车道编号]
sv命令[位置(m)]ASC“
使用cmd1=New-SqlCommand(cmdText1,con)
cmd1.CommandTimeout=3600
cmd1.ExecuteNonQuery()
终端使用
Dim cmdText2 As String=“更新[Sim卡记录]
设置[从动件的车辆编号]=
(从[Sim卡车辆记录]sv中选择顶部1[Veh No]
其中sv.[位置(m)]<[模拟视频记录].[位置(m)]
及
sv.[Sim卡时间(秒)]=[Sim卡记录].[Sim卡时间(秒)]
及
sv.[车道编号]=[模拟视频记录].[车道编号]
sv命令[位置(m)]说明“
使用cmd2=New-SqlCommand(cmdText2,con)
cmd2.CommandTimeout=3600
cmd2.ExecuteNonQuery()
终端使用
Dim cmdText3 As String=“更新[Sim VehRecord]
设置