我想有一个按钮,我可以浏览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
这是我到目前为止搜索和尝试的内容,但插入部分无效。
答案 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上使用ExecuteNonQuery
和INSERT
。
您可以使用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