通过VB.NET 2010连接到Access 2013数据库时出现无效的文件名错误

用户9407770

我必须进行干净的系统安装,并且丢失了一个正在制作的项目。然后,我从头开始,但是在连接方面遇到困难。我收到错误消息“无效的文件名”。奇怪的是,我能够检索组合框的数据。以下是例外情况详细信息:

Interception de System.Data.OleDb.OleDbException
  ErrorCode=-2147467259
  HResult=-2147467259
  Message=Not a valid file name.
  Source=Microsoft Office Access Database Engine
  StackTrace:
       à System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
       à System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
       à System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
       à System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
       à System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
       à System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       à System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
       à System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       à System.Data.OleDb.OleDbConnection.Open()
       à GestBanque.Securite.rechutil() dans F:\CODEBASE\HLVL\DotNet\GestBanque\GestBanque\Securite.vb:ligne 39
  InnerException: 

这是错误的代码:

Private Sub rechutil()
        Try
            Dim dr As OleDbDataReader
            Dim cmdselect As New OleDbCommand
            Dim sql As String
            Dim cn As String
            Dim sconnexion As OleDbConnection
            cn = "provider=Microsoft.ACE.OLEDB.12.0;Password=;User ID=Admin;Data Source=‪F:\GPI3\GestBanque.accdb"
            sconnexion = New OleDbConnection(cn)
            sconnexion.Open() ' The error is raised here
            cmdselect.Connection = sconnexion
            cmdselect.CommandType = CommandType.Text
            sql = "SELECT nom, motdepasse FROM UTILISATEUR WHERE nom=? AND motdepasse=?"
            cmdselect.CommandText = sql
            cmdselect.Parameters.Add("no", OleDbType.Char)
            cmdselect.Parameters.Add("mo", OleDbType.Char)
            cmdselect.Parameters("no").Value = cmbnom.Text
            cmdselect.Parameters("mo").Value = txtpass.Text
            dr = cmdselect.ExecuteReader
            If dr.HasRows Then
                Accueil.Show()
            Else
                MessageBox.Show("Désolé, Accès refusé, Mot de passe erronné", "Authentification", MessageBoxButtons.OK, MessageBoxIcon.Error)
                cmbnom.Text = ""
                txtpass.Text = ""
            End If
            sconnexion.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Authentification", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

相反,此过程运行良好:

Private Sub loadcombo()
        Try
            Dim dr As OleDbDataReader
            Dim cmdselect As New OleDbCommand
            Dim sql As String
            Dim cn As String
            Dim sconnexion As OleDbConnection
            cn = "provider=Microsoft.ACE.OLEDB.12.0;Password=;User ID=Admin;Data Source=F:\GPI3\GestBanque.accdb"
            sconnexion = New OleDbConnection(cn)
            sconnexion.Open()
            cmdselect.Connection = sconnexion
            cmdselect.CommandType = CommandType.Text
            sql = "SELECT nom FROM UTILISATEUR ORDER BY nom"
            cmdselect.CommandText = sql
            dr = cmdselect.ExecuteReader
            cmbnom.Items.Clear()
            While dr.Read
                cmbnom.Items.Add(dr.GetValue(0))
            End While
            sconnexion.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Chargement des noms", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub.

这是一个屏幕截图:屏幕截图

我已经搜索了大约一个月,但在各种论坛上都找不到解决方案。提前致谢。

汤普森(Gord Thompson)

当遇到类似这样的奇怪错误时,请检查您的字符串是否包含不可见的Unicode字符,这些字符可能是通过复制和粘贴引入的。例如,以下这行VB.NET代码看起来完全是良性的:

Dim spec As String = "‪‪W:\test.accdb"

但是如果我运行代码

Dim spec As String = "‪‪W:\test.accdb"
For i As Integer = 0 To 4
    Console.WriteLine(Hex(AscW(spec.Substring(i, 1))))
Next

我在控制台输出中看到了这一点

202A
202A
57
3A
5C

它告诉我字符串的前两个字符是不可见的Unicode“从左到右嵌入”字符U+202A即使该字符串看起来像一个有效的路径规范,实际上也不是。

确认的

通过下载您的项目进行确认。“ Securite.vb”的第37行包含紧接在“ F:”之前的上面引述的不可见Unicode字符(U + 202A),但第12行不包含该字符。这就是一个Sub失败而另一个Sub没有失败的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pyodbc和MS Access 2010连接错误

来自分类Dev

在vb.net中为通过Visual Studio 2010创建的本地数据库设置SqlConnection字符串

来自分类Dev

如何通过vb.net中的xmpp dll连接Facebook?

来自分类Dev

在VB.Net中使用SQL连接到Access数据库

来自分类Dev

在VB.NET中使用OLEDB通过DataGridView更新Access数据库

来自分类Dev

通过VB.NET 2010连接到Access 2013数据库时出现无效的文件名错误

来自分类Dev

通过Entity Framework Core将多个数据库连接到.NET Core项目

来自分类Dev

.NET Standard 2.0连接到Access数据库

来自分类Dev

通过VB .NET编辑Excel连接字符串

来自分类Dev

在Visual Studio中使用VB.NET连接到本地SQL数据库的连接字符串问题

来自分类Dev

无法使用Visual Studio通过VB.NET中的连接字符串手动访问本地SQL数据库

来自分类Dev

无需安装或运行时文件即可从.NET VB连接到Access DB

来自分类Dev

使用VB.NET通过USB连接到SQL Server

来自分类Dev

尝试在VB.net中设置范围时出现“ DBNull”错误。数据库是Excel

来自分类Dev

通过VB.NET 2010连接到MongoDB

来自分类Dev

无法通过VB.NET查看或插入MS Access oledb

来自分类Dev

如何将Outlook 2010连接到Exchange 2013

来自分类Dev

连接到vb2010中的嵌入式Access数据库

来自分类Dev

无法使用VB.net连接到Access

来自分类Dev

如何通过vb.net中的xmpp dll连接Facebook?

来自分类Dev

如何将vb6连接到postgresql数据库?

来自分类Dev

从Visual Studio 2010连接到Visual Studio Online 2013

来自分类Dev

将我的vb.net应用程序连接到MySQL数据库

来自分类Dev

我无法使用VB.NET连接到我的SQL Server数据库

来自分类Dev

如何使用Visual Studio 2013连接到asp.net中的本地SQL Server数据库?

来自分类Dev

缓慢的数据库查询:使用VB.net连接到Access

来自分类Dev

如何使用vb.net连接到Godaddy Cpanel中的在线数据库

来自分类Dev

Asp.Net Identity 通过 Web Api 连接到数据库

来自分类Dev

通过 VB/Visual Studio 插入 Access 数据库 (2017)

Related 相关文章

  1. 1

    Pyodbc和MS Access 2010连接错误

  2. 2

    在vb.net中为通过Visual Studio 2010创建的本地数据库设置SqlConnection字符串

  3. 3

    如何通过vb.net中的xmpp dll连接Facebook?

  4. 4

    在VB.Net中使用SQL连接到Access数据库

  5. 5

    在VB.NET中使用OLEDB通过DataGridView更新Access数据库

  6. 6

    通过VB.NET 2010连接到Access 2013数据库时出现无效的文件名错误

  7. 7

    通过Entity Framework Core将多个数据库连接到.NET Core项目

  8. 8

    .NET Standard 2.0连接到Access数据库

  9. 9

    通过VB .NET编辑Excel连接字符串

  10. 10

    在Visual Studio中使用VB.NET连接到本地SQL数据库的连接字符串问题

  11. 11

    无法使用Visual Studio通过VB.NET中的连接字符串手动访问本地SQL数据库

  12. 12

    无需安装或运行时文件即可从.NET VB连接到Access DB

  13. 13

    使用VB.NET通过USB连接到SQL Server

  14. 14

    尝试在VB.net中设置范围时出现“ DBNull”错误。数据库是Excel

  15. 15

    通过VB.NET 2010连接到MongoDB

  16. 16

    无法通过VB.NET查看或插入MS Access oledb

  17. 17

    如何将Outlook 2010连接到Exchange 2013

  18. 18

    连接到vb2010中的嵌入式Access数据库

  19. 19

    无法使用VB.net连接到Access

  20. 20

    如何通过vb.net中的xmpp dll连接Facebook?

  21. 21

    如何将vb6连接到postgresql数据库?

  22. 22

    从Visual Studio 2010连接到Visual Studio Online 2013

  23. 23

    将我的vb.net应用程序连接到MySQL数据库

  24. 24

    我无法使用VB.NET连接到我的SQL Server数据库

  25. 25

    如何使用Visual Studio 2013连接到asp.net中的本地SQL Server数据库?

  26. 26

    缓慢的数据库查询:使用VB.net连接到Access

  27. 27

    如何使用vb.net连接到Godaddy Cpanel中的在线数据库

  28. 28

    Asp.Net Identity 通过 Web Api 连接到数据库

  29. 29

    通过 VB/Visual Studio 插入 Access 数据库 (2017)

热门标签

归档