Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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中的代码创建到ODBC数据源的连接_Vb.net_Visual Studio 2010_.net 4.0 - Fatal编程技术网

使用vb.net中的代码创建到ODBC数据源的连接

使用vb.net中的代码创建到ODBC数据源的连接,vb.net,visual-studio-2010,.net-4.0,Vb.net,Visual Studio 2010,.net 4.0,我正在尝试使用vb.net(Visual studio 2013)通过代码连接到MS Access数据库2007(.accdb)。但是我的代码有点不对劲,我想不出来 数据库名称为“localDatabase.accdb” 我没有在数据库中输入任何密码 我用的是64位 提前谢谢 这是我的密码: Module Module1 Dim conn As New System.Data.Odbc.OdbcConnection Public Sub ConnectToOdbc() conn.Con

我正在尝试使用vb.net(Visual studio 2013)通过代码连接到MS Access数据库2007(.accdb)。但是我的代码有点不对劲,我想不出来

数据库名称为“localDatabase.accdb”

我没有在数据库中输入任何密码

我用的是64位

提前谢谢

这是我的密码:

Module Module1
Dim conn As New System.Data.Odbc.OdbcConnection
Public Sub ConnectToOdbc()

    conn.ConnectionString = Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Users\MyPc\Documents\Visual Studio 2013\Projects\database\localDatabase.accdb"

    Try
        conn.Open()
    Catch ex As Exception
        MessageBox.Show("Failed to connect to data source")
    Finally
        conn.Close()
    End Try

End Sub

End Module

这只是一个假设。
我现在在我的应用程序上使用ACE 12.0,它运行良好。不同的是代码尝试使用此

Imports System.Data.OleDb
'instead of obdc
con = New OleDbConnection
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & Path.Combine(Application.StartupPath, "YourDatabase.accdb")
'put your .accdb in your app folder
可能错误在于找不到您的.accdb文件。

更改此行:

conn.ConnectionString = Provider=Microsoft.ACE.OLEDB.12.0;Data Source="C:\Users\MyPc\Documents\Visual Studio 2013\Projects\database\localDatabase.accdb"
为此:

conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MyPc\Documents\Visual Studio 2013\Projects\database\localDatabase.accdb"
ConnectionString的名称是一个字符串,因此需要用双引号将其包装起来,以便VB编译器将其识别为字符串

更新:

您还需要将连接对象从Odbc更改为OleDb:

Dim conn As New System.Data.OleDb.OleDbConnection

你犯了什么错误?我认为ODBC连接字符串的格式应该是Dim Conn,因为OdbcConnection=New OdbcConnection(“DSN=ODBCNAME;UID=USERNAME;PWD=PASSWORD;”),它表示“ACE”不是microsoft的成员,并且未声明“Provider”。我试图声明它,但仍然有一个错误。这是我得到它的地方。如果我没记错的话,我安装了一些关于ACE的东西,而不是JET provider。让我来查找。在应用程序的生命周期中保持并重复使用一个连接是一种不好的做法。在大多数情况下,您应该为每个对数据库的调用创建一个新的连接对象。真的。运行它时还有一个错误。conn.open()System.Data.dll中发生类型为“System.Data.Odbc.OdbcException”的未处理异常。其他信息:错误[IM002][Microsoft][Odbc驱动程序管理器]未找到数据源名称且未指定默认驱动程序可能原因,MS Access数据库文件的路径不正确。请尝试仔细检查文件的路径。能否给我一个示例,数据库的路径是C:\Users\MyPc\Documents\Visual Studio 2013\Projects\database,数据库名称是localDatabase.accdb,使用相同的Provider,如果要部署Application.StartupPath,则应该使用它。运行它时,这里还有一个错误。conn.open()System.Data.dll中发生类型为“System.Data.Odbc.OdbcException”的未处理异常。其他信息:错误[IM002][Microsoft][Odbc驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序