System.Data.OleDb.OleDbException:'无效的文件名'

问题描述

我想在本地访问数据库的组合框中显示路由名称,但出现此错误,我不知道为什么。我尝试了很多在网上找到的东西,但没有一个有用。

代码可能有问题吗?

        private void Form1_Load(object sender,EventArgs e)
    {
        OleDbConnection connection = new OleDbConnection();
        //Connection string:
        connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=‪E:\Programming\Job\Jaratok.accdb;Persist Security Info=False;";

            connection.Open();

            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            string query = "SELECT Name FROM Route";
            command.CommandText = query;

            OleDbDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                comboBox1.Items.Add(reader["Name"].ToString());
            }

            connection.Close(); 

enter image description here

如您所见,数据库位于文件夹中,但仍然...

enter image description here

解决方法

=‪E:\Programming\Job\Jaratok.accdb

=之后和E:之前有一个hidden character。您可以通过将光标放在=的左侧来发现它。现在按向右箭头。它移动。现在再按一次。 它不会移动

这样,您需要删除该隐藏字符(即删除=和E,然后再将其重新添加)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...