使用Visual Basic 2010 oleDB返回选择值

时间:2014-09-17 17:30:22

标签: vb.net excel oledb

我正在尝试使用visual basic 2010读取一个excel单元格(我真的很新),我想我终于做到了但是我不知道如何返回结果。 它应该从剪贴板或msgBox结束,我会找到自己的方式:D 我现在搜索了两个小时,但没有找到解决办法......请帮帮我

由于

      Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
    cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\DB.xls;extended properties=excel 8.0;"
    cn.Open()

    With cm
        .Connection = cn
        .CommandText = "SELECT * FROM [ccs$C1:B20] WHERE 'id' = 'German'"
        .ExecuteNonQuery()
    End With
    cn.Close()

    MsgBox(????)



End Sub
编辑:她是更新的代码。我得到“找不到可安装的ISAM

        Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
    Dim con As New OleDbConnection
    Try
        Using con
            'added HDR=No to the extended properties of the connection string
            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplicat'ion1\bin\Debug\DB.xls;extended properties=excel 12.0;HDR=Yes"
            con.Open()
            Using cmd = New OleDbCommand
                cmd.Connection = con
                cmd.CommandText = "SELECT * FROM [ccs$C1:C20] WHERE 'id' = 'German'"
                Using oRDR As OleDbDataReader = cmd.ExecuteReader
                    While (oRDR.Read)
                        MsgBox(oRDR.GetValue(0)) 'gets the first returned column
                    End While
                End Using
                con.Close()
            End Using
        End Using
    Catch ex As Exception
        Throw New Exception(ex.Message)
    Finally
        con.Close()
    End Try
End Sub
编辑:这对我有用:

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
    Dim con As New OleDbConnection
    Try
        Using con
            'added HDR=No to the extended properties of the connection string
            con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\DB.xls;Mode=3;User ID=Admin;Password=;Extended Properties=Excel 8.0"
            con.Open()

            Using cmd = New OleDbCommand
                cmd.Connection = con
                cmd.CommandText = "SELECT Service FROM [ccs$] WHERE id='" & ComboBox1.SelectedItem & "'"
                Using oRDR As OleDbDataReader = cmd.ExecuteReader
                    While (oRDR.Read)
                        MsgBox(oRDR.GetValue(0)) 'gets the first returned column
                    End While
                End Using
                con.Close()
            End Using
        End Using
    Catch ex As Exception
        Throw New Exception(ex.Message)
    Finally
        con.Close()
    End Try
End Sub

1 个答案:

答案 0 :(得分:0)

欢迎来到SO。将来你应该向我们展示你的所有代码。由于您标记了OleDB和vb.net,因此以下实现了您要完成的任务。我包含了Form Class,因此可以显示Imports语句,但您可以在确保Class包含Imports之后复制并粘贴click事件代码。注意,我没有测试过这段代码,但它应该可以工作。如果您需要澄清或提供其他帮助,请与我们联系。

Imports System.Data.OleDb

Public Class Form1
    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        Dim con As New OleDbConnection
        Try
            Using con
                'added HDR=No to the extended properties of the connection string
                ' **EDIT**
                con.ConnectionString = "Provider=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\marcelf\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplicat'ion1\bin\Debug\DB.xls;Mode=3;User ID=Admin;Password=;Extended Properties=Excel 8.0"
                con.Open()
                Using cmd = New OleDbCommand
                    cmd.Connection = con
                    cmd.CommandText = "SELECT * FROM [ccs$C1:B20] WHERE 'id' = 'German'"
                    Using oRDR As OleDbDataReader = cmd.ExecuteReader
                        While (oRDR.Read)
                            MsgBox(oRDR.GetValue(0)) 'gets the first returned column
                        End While
                    End Using
                    con.Close()
                End Using
            End Using
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            con.Close()
        End Try
    End Sub
End Class