Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET中设置数据源_.net_Database_Vb.net_Datasource - Fatal编程技术网

在VB.NET中设置数据源

在VB.NET中设置数据源,.net,database,vb.net,datasource,.net,Database,Vb.net,Datasource,我想做的是: 用户应按下菜单项并选择数据库文件,然后将数据源定向到用户指向数据库文件的位置。 我应该在“dbSource=Data Source=…”行中添加什么内容?Access数据库为.mdb,因为我在使用.accdb时遇到问题更改此行: Dim inc As Integer Dim MaxRows As Integer Dim con As New OleDb.OleDbConnection Dim dbProvider As String Dim dbSource As String D

我想做的是:
用户应按下菜单项并选择数据库文件,然后将数据源定向到用户指向数据库文件的位置。 我应该在“dbSource=Data Source=…”行中添加什么内容?Access数据库为.mdb,因为我在使用.accdb时遇到问题更改此行:

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 = Agenda.mdb"

这将把
数据源
指向用户选择的文件。

您在那里遇到了一些麻烦

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

如果您已经做了一些关于让jet工作的事情,那么您可以做:

dbSource = "Data Source=""" & OpenFD.FileName & """"
如果您不想跳过让Jet工作的障碍,请更改:

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


祝你好运。

Somewhy当我尝试安装AccessDatabaseEngine_x64.exe时,它告诉我我在32位环境下(我不明白;我有Windows x64、Visual Studio x64和Office x64)。我尝试了你的两种选择,但没有一种效果很好。单击Ok按钮后,数据库不会加载。无论如何,谢谢你抽出时间!谢谢你的评论,但那没用。事实上,如果我试着把OpenFD.Filename;它告诉我“;”不能去那里。@CamiloBloodstar,我的道歉,我把我的语言弄混了。你用的是VB,我把它写成了
在那里,因为我主要是用C写的。不管怎样,您声明希望获得用户选择的文件的路径-只需使用
OpenFD.FileName
将该路径附加到
dbSource
,该路径不会更改。请看我的编辑,我已经修复了语法错误,我在字符串中加了双引号,以防路径中有空格。
dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;"
dbSource = "Data Source = Agenda.mdb"
dbProvider = "Driver={Microsoft Access Driver (*.mdb)};"
dbSource = "Dbq=" & "Agenda.mdb;"