mycommand.fill(dtset)不起作用.为什么



我正在尝试使用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

我希望这会有所帮助。

,但我强烈建议您找到问题使用断点

相关内容

  • 没有找到相关文章

最新更新