[英]How to import excel file into MySQL using openfiledialog
我想要一个可以浏览excel文件的按钮。 我希望将内部数据插入到我的mysql数据库中。 我已经有一个按钮,它已经可以浏览并选择一个文件。 我在将excel内部的数据插入mysql数据库时遇到问题。
Dim fname As String = label1.Text
Try
If label1.Text = "" Then
Else
' Code to Import from Excel in to database.
Dim dbFileName As String = fname
Dim insertSql As String = "INSERT INTO tbl1 SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=" + dbFileName + "',[Sheet1$])"
MySqlCmd = New MySqlCommand
MySqlCmd.Connection = Myconnect
MySqlCmd.CommandText = insertSql
MySqlCmd.ExecuteNonQuery()
MsgBox("import successful")
End If
Catch ex As Exception
End Try
到目前为止,这是我搜索和尝试过的内容,但是插入部分无法正常工作。
这是应该为您指出正确方向的答案。
您的目标:从Excel工作表获取数据并将其加载到MySql DB中
第1部分。打开文件对话框
答:选择文件后,只需从中获取文件名
第2部分。读取文件
答:使用Microsof.Ace.OleDb.vXXX
提供程序从Excel读取数据。 使用此提供程序,您可以像处理数据库一样使用excel。 即,您将打开connection
(使用在步骤1中获得的文件名),并使用command
对象打开dataReader
或填充dataSet
。
第3部分。保存到MySql
答:您将迭代读取器或数据表的行,并将数据插入MySql。 您将为.NET使用MySql数据提供程序
附加评论。
可以使用几种技术来传输数据。 最便宜的一种是在Excel上使用数据读取器,在MySql上使用带有INSERT
ExecuteNonQuery
。 您可以在MySql端使用数据适配器和查询生成器将架构加载到数据集,并为数据适配器生成插入和更新SQL。 然后,将记录插入数据表并调用.Update()
。 好的,实际上,完成方法的组合很少。 但是我会坚持使用reader on Excel/command.ExecuteNonQuery
上的Reader.ExecuteNonQuery
感谢您的所有评论和答复! 我已经有了答案,希望这对其他人有帮助!
Try
Dim conn As New Connection
Dim rset As New Recordset
Dim buff0 As String
Dim buff1 As String
Dim buff2 As String
Dim buff3 As String
Dim buff4 As String
Dim buff5 As String
conn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=790;Dbq=" & TextBox1.Text & ";" 'Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=d:\temp\test.xls;"
conn.Open()
rset.Open("select * from [Sheet1$]", conn, CursorTypeEnum.adOpenForwardOnly)
Do Until rset.EOF
buff0 = rset(0).Value
buff1 = rset(1).Value
buff2 = rset(2).Value
buff3 = rset(3).Value
buff4 = rset(4).Value
buff5 = rset(5).Value
MySqlCmd = New MySqlCommand
MySqlCmd.Connection = Myconnect
MySqlCmd.CommandText = "INSERT INTO tbl1 VALUES('" & buff0 & "','" & buff1 & "','" & buff2 & "','" & buff3 & "','" & buff4 & "','" & buff5 & "')"
MySqlCmd.ExecuteNonQuery()
rset.MoveNext()
Loop
MsgBox("Import Successful!", MsgBoxStyle.Information, Title:="SOMS")
Catch ex As Exception
MsgBox("Import Unsuccessful!", MsgBoxStyle.Critical, Title:="SOMS")
End Try
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.