发表于: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才能完成数据的导入,大家帮我看看是否有办法可以优化一下,谢谢各位朋友
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才能完成数据的导入,大家帮我看看是否有办法可以优化一下,谢谢各位朋友