如何使用openfiledialog将excel文件导入到MySQL中

我想有一个button,我可以浏览一个Excel文件。 我想要里面的数据被插入到我的MySQL数据库。 我已经有一个button,它已经可以浏览和select一个文件。 在将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 

这是我迄今为止search和尝试,但插入部分不工作。

这是应该指向正确方向的答案。

您的目标:从Excel工作表中获取数据并将其加载到MySql数据库中

第1部分:打开文件对话框

答:一旦select文件,您只需要从文件名中取出文件名

第2部分。读取文件

答案:使用Microsof.Ace.OleDb.vXXX提供程序从Excel中读取数据。 使用这个提供者,你可以像使用数据库一样使用excel。 即您将打开connection [使用您在步骤1中获得的文件名],并使用command对象打开dataReader或fill dataSet

第3部分。保存到MySql

答:您将迭代读取器或数据表行并将数据插入到MySql中。 您将使用.NET的MySql数据提供程序

补充评论。

有几种技术可以用来传输数据。 最便宜的是在Excel上使用数据读取器,在MySql上使用ExecuteNonQueryINSERT 。 您可以使用MySql端的数据适配器和查询生成器将模式加载到数据集,并为数据适配器生成插入和更新SQL。 然后,您将logging插入数据表并调用.Update() 。 好的,实际上,这个方法的组合很less。 但是我会坚持reader on Excel/command.ExecuteNonQuery MySql上的reader on Excel/command.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