web-dev-qa-db-ja.com

C#を使用してMS Accessファイル(mdb)に接続する方法は?

Mdbファイルに接続しようとしていますが、_Microsoft.OLEDB.JET.4.0_データプロバイダーが必要であることを理解しています。残念ながら、(University)マシンにはインストールされていません。彼らはそのプロバイダーを提供していないので、回避方法があるはずだと思います。

_Microsoft.OLEDB.JET.4.0_なしでファイルに接続するにはどうすればよいですか?

次のプロバイダーがあります。

Available Ole DB providers

_OLE DB Provider for Microsoft Directory Services_を使用してみました。接続のテスト中に、「テストは成功しましたが、プロバイダーによって一部の設定が受け入れられませんでした」というメッセージが表示されます。とにかくその文字列を使用して使用し、ADsDSOObject' failed with no error message available, result code: DB_E_ERRORSINCOMMAND(0x80040E14)を取得しました。

13
Sushan Ghimire

接続する最も簡単な方法は、次のようなコードを使用してOdbcConnectionを使用することです

using System.Data.Odbc;

using(OdbcConnection myConnection = new OdbcConnection())
{
    myConnection.ConnectionString = myConnectionString;
    myConnection.Open();

    //execute queries, etc

}

myConnectionStringは次のようなものです

myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + 
"Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

ConnectionStrings を参照してください

別の方法では、DSNを作成してから、そのDSNを接続文字列で使用できます

  • コントロールパネルを開きます-管理ツール-ODBC Data Source Manager
  • システムDSNページに移動し、新しいDSNを追加します
  • Microsoft Access Driver(* .mdb)を選択し、ENDを押します
  • DSNの名前を設定します(この例ではMyDSNを選択します)
  • 使用するデータベースを選択します
  • CompactまたはRecoverコマンドを試して、接続が機能するかどうかを確認します

今、あなたのconnectionStringはこのように書くことができます

myConnectionString = "DSN=myDSN;"
23
Steve

Jet OLEDBまたはAce OLEDB Access DBの使用方法は次のとおりです。

using System.Data;
using System.Data.OleDb;

string myConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                           "Data Source=C:\myPath\myFile.mdb;" +                                    
                           "Persist Security Info=True;" +
                           "Jet OLEDB:Database Password=myPassword;";
try
{
    // Open OleDb Connection
    OleDbConnection myConnection = new OleDbConnection();
    myConnection.ConnectionString = myConnectionString;
    myConnection.Open();

    // Execute Queries
    OleDbCommand cmd = myConnection.CreateCommand();
    cmd.CommandText = "SELECT * FROM `myTable`";
    OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // close conn after complete

    // Load the result into a DataTable
    DataTable myDataTable = new DataTable();
    myDataTable.Load(reader);
}
catch (Exception ex)
{
    Console.WriteLine("OLEDB Connection FAILED: " + ex.Message);
}
5
DEXTER360

どのAccess File拡張子を使用していますか? Jet OLEDBまたはAce OLEDB。 Access DBが.mdb(別名Jet Oledb)の場合

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Oledb

namespace MembershipInformationSystem.Helpers
{
    public class dbs
    {
        private String connectionString;
        private String OleDBProvider = "Microsoft.JET.OLEDB.4.0"; \\if ACE Microsoft.ACE.OLEDB.12.0
        private String OleDBDataSource = "C:\\yourdb.mdb";
        private String OleDBPassword = "infosys";
        private String PersistSecurityInfo = "False";

        public dbs()
        {

        }

        public dbs(String connectionString)
        {
            this.connectionString = connectionString;
        }

        public String konek()
        {
            connectionString = "Provider=" + OleDBProvider + ";Data Source=" + OleDBDataSource + ";JET OLEDB:Database Password=" + OleDBPassword + ";Persist Security Info=" + PersistSecurityInfo + "";
            return connectionString;
        }
    }
}
3
Bon

Microsoft Accessにアクセスするには、「Microsoft OLE DB Provider for ODBC Drivers」)を使用する必要があります。使用方法のサンプルチュートリアルを次に示します。

http://msdn.Microsoft.com/en-us/library/aa288452(v = vs.71).aspx

3
RajN

これを試して..

using System.Data.OleDb;

OleDbConnection dbConn;

dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
0
Kishore Kumar

別の最も簡単な接続方法は、このようなApp.configファイルを使用してOdbcConnectionを使用することです。

  <appSettings>  
    <add key="Conn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDB.mdb;Persist Security Info=True"/>
  </appSettings>

MyDB.mdbは私のデータベースファイルであり、メインのexeファイルとともに現在のプライマリアプリケーションフォルダーに存在します。

mdfファイルにパスワードがある場合は、次のように使用します

  <appSettings>
    <add key="Conn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDB.mdb;Persist Security Info=True;Jet OLEDB:Database Password=Admin$@123"/>
  </appSettings>
0
Durgesh Pandey