繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM