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

时间:2015-12-16 02:39:49

标签: mysql vb.net excel 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

这是我到目前为止搜索和尝试的内容,但插入部分无效。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案:一旦选择了文件,您只需要从中获取文件名

第2部分。阅读文件

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

第3部分。保存到MySql

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

补充评论。

您可以使用几种技术来传输数据。最便宜的一个是在Excel上使用数据读取器,在MySql上使用ExecuteNonQueryINSERT。 您可以使用MySql端的数据适配器和查询构建器将架构加载到数据集,并为数据适配器生成插入和更新SQL。然后,您将记录插入数据表并调用.Update()。好吧,实际上,它的完成方式很少。但我会坚持reader on Excel/command.ExecuteNonQuery在MySql上

答案 1 :(得分:1)

感谢您的所有意见和解答!我已经得到了答案,我希望这可以帮助别人!

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