Получение Не удается найти устанавливаемую ошибку ISAM

У меня возникла проблема с моим консольным приложением. Я хочу прочитать информацию из базы данных Microsoft Access и отобразить ее на консоли. Вот код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.OleDb;
using System.Data.Sql;

namespace _1_uzd
{
    class Program
    {
        static void Main(string[] args)
        {
            string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;DataSource=\"studentu-db.accdb\"";
            OleDbConnection con = new OleDbConnection(ConnectionString);
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM persona", con);
            con.Open();
            OleDbDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                Console.WriteLine(dataReader.GetInt32(0) + "\t" + dataReader.GetString(1) + "\t" + dataReader.GetString(2));
            }
            con.Close();
            Console.ReadLine();
        }
    }
}

Это должно работать, но при отладке отображается сообщение об ошибке: «OleDbExeption не обработан. Не удалось найти устанавливаемый ISAM»... В чем проблема?

PS: я использую Microsoft Access 2007, в этом есть смысл,


person Kalvis    schedule 08.02.2014    source источник
comment
64-битная ОС с 32-битным Office?   -  person Joachim Isaksson    schedule 08.02.2014
comment
Не должно быть.. Как проверить, какую версию Office я использую (я имею в виду битовую версию)?   -  person Kalvis    schedule 08.02.2014
comment
Хм, не могу найти 100% информацию, но я не думаю, что Access 2007 существует в 64-битной версии. Попробуйте установить для своего проекта значение x86 вместо Any CPU и посмотрите, поможет ли это.   -  person Joachim Isaksson    schedule 08.02.2014
comment
Я изменил Project›1uzd_Options›Build›Platform target на x86, но сообщение об ошибке все еще появляется   -  person Kalvis    schedule 08.02.2014


Ответы (1)


ваша строка подключения неверна. это основная причина, по которой появляется эта ошибка.

Попробуйте исправить синтаксис строки подключения в соответствии с http://www.connectionstrings.com/access/.

Попробуйте указать физический путь, например "C:\studentu-db.accdb", и если вы пытаетесь найти базу данных доступа из локальной папки, напишите "|DataDirectory|\studentu-db.accdb"

person Jaynesh Shah    schedule 10.02.2014