我正在尝试使用OLEDB填充数据集,但似乎不起作用。我从网站获得了代码,对连接几乎一无所知。我在VB.NET(2010(和Excel 2016中的计划。代码的作用:它使用OLEDB插入Excel文件中的单元格数据。
i在VB.NET(2010(中的程序,并稍微修改了代码以满足我的需求。
这是完整的代码:
Private Sub AdxRibbonButton16_OnClick(ByVal sender As System.Object, _
ByVal control As AddinExpress.MSO.IRibbonControl, _
ByVal pressed As System.Boolean) _
Handles AdxRibbonButton16.OnClick
Try
Dim MyConnection As System.Data.OleDb.OleDbConnection
Dim DtSet As System.Data.DataSet
Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
Dim DataGridView1 As New DataGridView
MyConnection = New System.Data.OleDb.OleDbConnection _
("provider=Microsoft.ACE.OLEDB.12.0; Data Source='F:testfile.xlsx'; Extended Properties=Excel 12.0;")
MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
MyCommand.TableMappings.Add("Table", "TestTable")
DtSet = New System.Data.DataSet
MyCommand.Fill(DtSet) '// seems problem is here
DataGridView1.DataSource = DtSet.Tables(0)
MyConnection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
预期结果:Excel文件的内容应发送到datagrid。
实际结果:什么都没发生
错误消息:无错误消息。当我单击按钮时,什么都没有。
我要在黑暗中拍摄并说删除这条线
Dim DataGridView1 As New DataGridView
如果偶然地说" datagridview1",请从工具箱中拖动datagridview到表单
另外,添加您正在创建的DataGridView到Control Collection
Form1.Controls.add(DataGridView1)
在设计时添加datagridview1。我使用数据集代替数据集和命令而不是DataAdapter简化了一些内容。使用块将确保数据库对象即使存在错误,也将被关闭和处理。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt As New DataTable
Using MyConnection As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0; Data Source='F:testfile.xlsx'; Extended Properties=Excel 12.0;")
Using MyCommand As New OleDbCommand("select * from [Sheet1$]", MyConnection)
MyConnection.Open()
dt.Load(MyCommand.ExecuteReader)
End Using
End Using
DataGridView1.DataSource = dt
End Sub
此代码填充数据集,然后是一个表,但在MySQL中,您需要进行一些更改才能使用OLEDB,但VB.NET零件是相同的
Dim ds1 As New DataSet
con.Open()
Try
da = New MySqlDataAdapter("SELECT * FROM `modes`", con)
Catch ex As Exception
' s.WriteLine(Now & " The Mysql query is not possible to run down")
End Try
ds1.Clear()
da.Fill(ds1)
Dim table As DataTable = ds.Tables(0)
然后填充datagridview使用此
DataGridView1.DataSource = table
我希望这会有所帮助。
,但我强烈建议您找到问题使用断点