0

コンソール アプリケーションで問題に直面しています。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 を使用しています。

4

1 に答える 1

1

接続文字列が適切ではありません。それがこのエラーが発生する主な理由です。

http://www.connectionstrings.com/access/に従って接続文字列の構文を修正してみてください

"C:\studentu-db.accdb" のような物理パスを試してみてください。ローカル フォルダーからアクセス データベースを見つけようとしている場合は、"|DataDirectory|\studentu-db.accdb" と書きます。

于 2014-02-10T10:43:32.653 に答える