登录
首页 电脑编程
回帖 发帖
正文

主题:大家帮我看看如何改进

点击:1361 回复:0

Public Sub scvread() '创建后用来读取CSV文件,并将结果保存在ACCESS
       If Form1.OpenFileDialog1.ShowDialog() = DialogResult.OK Then
           Dim mystream As System.IO.Stream = Form1.OpenFileDialog1.OpenFile()
           Dim mystreamreader As System.IO.StreamReader
           Dim rowcount As Integer = 0
           Dim mystream1 As String
           Dim value1, value2, value3, value4, value5, value6, value7 As String '定义7个字段的输入值
           Dim strsqlinsert As String
           If Not (mystream Is Nothing) Then
               Form2.Show()
               mystreamreader = New IO.StreamReader(mystream)
               mystream1 = mystreamreader.ReadLine
               While (Not mystream1 Is Nothing)
                   'Form1.RichTextBox1.Text += rowcount.ToString() + ":" + mystream1 + vbCrLf
                   mystream1 = mystreamreader.ReadLine() '将数据分解到字段中
                   value1 = Mid(mystream1, 1, 8)
                   value2 = Mid(mystream1, 10, 8)
                   value3 = Mid(mystream1, 20, 8)
                   value4 = Mid(mystream1, 30, 8)
                   value5 = Mid(mystream1, 40, 8)
                   value6 = Mid(mystream1, 50, 8)
                   value7 = Mid(mystream1, 60, 8)
                   strsqlinsert = "insert into diankong7" & "(timer,mach1,mnch1,mach3,mnch3,mach4,mnch4)" & "values(1,1,2,2,3,3,3)"
                   Dim objcommand As New OleDbCommand(strsqlinsert, objconnection)
                   Dim objreader As OleDbDataReader = objcommand.ExecuteReader
                   rowcount += 1
               End While
               Form2.Visible = False
               MsgBox("载入成功,谢谢")
           End If
       End If
   End Sub
将一个CSV文件读入ACCESS数据库,采用循环逐条读取,但数据容量非常大,是笔录仪导出来的数据,大概有40000条,因此上述代码调试过程中发现速度很慢,大概需要40S才能完成数据的导入,大家帮我看看是否有办法可以优化一下,谢谢各位朋友
07-06-21 00:53

工控新闻

更多新闻资讯