您现在所在的是:

电脑编程

回帖:0个,阅读:1320 [上一页] [1] [下一页]
1034
蚌埠人
文章数:31
年度积分:50
历史总积分:1034
注册时间:2004/9/8
发站内信
发表于:2007/6/21 0:53:00
#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才能完成数据的导入,大家帮我看看是否有办法可以优化一下,谢谢各位朋友

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002