Mdbファイルに接続しようとしていますが、_Microsoft.OLEDB.JET.4.0
_データプロバイダーが必要であることを理解しています。残念ながら、(University)マシンにはインストールされていません。彼らはそのプロバイダーを提供していないので、回避方法があるはずだと思います。
_Microsoft.OLEDB.JET.4.0
_なしでファイルに接続するにはどうすればよいですか?
次のプロバイダーがあります。
_OLE DB Provider for Microsoft Directory Services
_を使用してみました。接続のテスト中に、「テストは成功しましたが、プロバイダーによって一部の設定が受け入れられませんでした」というメッセージが表示されます。とにかくその文字列を使用して使用し、ADsDSOObject' failed with no error message available, result code: DB_E_ERRORSINCOMMAND(0x80040E14)
を取得しました。
接続する最も簡単な方法は、次のようなコードを使用して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を接続文字列で使用できます
今、あなたのconnectionStringはこのように書くことができます
myConnectionString = "DSN=myDSN;"
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);
}
どの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;
}
}
}
Microsoft Accessにアクセスするには、「Microsoft OLE DB Provider for ODBC Drivers」)を使用する必要があります。使用方法のサンプルチュートリアルを次に示します。
http://msdn.Microsoft.com/en-us/library/aa288452(v = vs.71).aspx
これを試して..
using System.Data.OleDb;
OleDbConnection dbConn;
dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
別の最も簡単な接続方法は、このような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>