【问题标题】:Setting DataSource in VB.NET在 VB.NET 中设置数据源
【发布时间】:2013-02-21 20:20:45
【问题描述】:
Dim inc As Integer
Dim MaxRows As Integer
Dim con As New OleDb.OleDbConnection
Dim dbProvider As String
Dim dbSource As String
Dim dA As OleDb.OleDbDataAdapter
Dim dS As New DataSet
Dim SQL As String

Private Sub AbrirToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbrirToolStripMenuItem.Click
    Dim strFileName As String
    Dim ClikedOk As Integer

    OpenFD.InitialDirectory = "C:\"
    OpenFD.Title = "Ubica la base de datos"
    OpenFD.Filter = "Agenda|Agenda.mdb"
    OpenFD.ShowDialog()

    If ClikedOk = DialogResult.OK Then
        strFileName = OpenFD.FileName
        dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
        dbSource = "Data Source = Agenda.mdb"

        con.ConnectionString = dbProvider & dbSource
        con.Open()
        SQL = "SELECT * FROM Contactos"
        dA = New OleDb.OleDbDataAdapter(SQL, con)
        dA.Fill(dS, "Agenda")

        con.Close()
        MaxRows = dS.Tables("Agenda").Rows.Count
        inc = -1

    End If
End Sub

我想做的是:
用户应按菜单项并选择数据库文件,然后数据源将被定向到用户指向数据库文件的位置。 我应该在“dbSource = Data Source = ...”行中输入什么?访问数据库是 .mdb,因为我在使用 .accdb 时遇到了麻烦

【问题讨论】:

    标签: .net database vb.net datasource


    【解决方案1】:

    改变这一行:

    dbSource = "Data Source = Agenda.mdb"
    

    到这里:

    dbSource = "Data Source=""" & OpenFD.FileName & """"
    

    这会将Data Source 指向用户选择的文件。

    【讨论】:

    • 感谢您的评论,但这没有用。事实上,如果我什至尝试把 OpenFD.Filename;它告诉我“;”不去那里。
    • @CamiloBloodstar,我很抱歉,我把我的语言弄混了。你使用的是 VB,我把 ; 放在那里,因为我主要用 C# 编写。无论如何,您声明您想要获取用户选择的文件的路径 - 您只需将其附加到 dbSourceOpenFD.FileName - 这不会改变。请查看我的编辑,我已经修复了语法错误 and 我在字符串中加上了双引号,以防路径中有空格。
    【解决方案2】:

    你在那儿有点麻烦。 Jet drivers are 32 bit and need to be updated if you want to use jet to access databases in 64 bit windows

    您还可以将应用配置为在 WoW64 模式下运行以使用 32 位驱动程序。

    如果你已经做了一些让喷气机工作的事情,那么你可以这样做:

    dbSource = "Data Source=" & OpenFD.FileName;
    

    如果您不想跳过让 Jet 工作的麻烦,then you can use the .Net libraries to connect 通过更改:

    dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
    dbSource = "Data Source = Agenda.mdb"
    

    dbProvider = "Driver={Microsoft Access Driver (*.mdb)};"
    dbSource = "Dbq=" & "Agenda.mdb;"
    

    祝你好运。

    【讨论】:

    • 为什么当我尝试安装 AccessDatabaseEngine_x64.exe 时它告诉我我在 32 位环境下(我不明白;我有 Windows x64、Visual Studio x64 和 Office x64) .我尝试了您的两种选择,但都没有正常工作。单击确定按钮后,数据库不会加载。无论如何,感谢您的宝贵时间!
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多