16

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

なしでファイルに接続するにはどうすればよいMicrosoft.OLEDB.JET.4.0ですか、または代替手段はありますか?

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

利用可能な Ole DB プロバイダー

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

4

6 に答える 6

28

接続する最も簡単な方法は、次のようなコードを使用して 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=;

接続文字列を参照してください

別の方法として、DSN を作成し、その DSN を接続文字列で使用することもできます。

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

これで、connectionString をこのように書くことができます

myConnectionString = "DSN=myDSN;"
于 2012-04-29T19:25:44.490 に答える
10

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);
}
于 2015-04-23T19:56:28.283 に答える
3

どの 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;
        }
    }
}
于 2013-08-29T10:20:38.323 に答える
3

Microsoft Access にアクセスするには、「Microsoft OLE DB Provider for ODBC Drivers」を使用する必要があります。これは、それを使用するためのサンプルチュートリアルです

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

于 2012-04-29T18:44:11.983 に答える
0

これを試して..

using System.Data.OleDb;

OleDbConnection dbConn;

dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
于 2012-04-29T19:25:16.487 に答える