演習用の簡単なアプリケーションを作成したいので、Access (.accdb) のような簡単なデータベースに接続するとよいでしょう。
私のプログラムは次のようになります。
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
namespace myProject.Account
{
public class DbManager
{
private OleDbConnection _dbConnection;
public void OpenDbConnection()
{
_dbConnection = new OleDbConnection {ConnectionString = GetConnectionString()};
}
private string GetConnectionString()
{
return "Provider=Microsoft.ACE.OLEDB.14.0;Data Source=exercise1.accdb";
}
public void CloseDbConnection()
{
_dbConnection.Close();
}
public void GetUser()
{
DataSet myDataSet = new DataSet();
var myAdapptor = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand("SELECT * FROM tblUser", _dbConnection);
myAdapptor.SelectCommand = command;
myAdapptor.Fill(myDataSet, "tblUser");
}
}
}
Visual Studio 2010 を使用しています。組み込みのデバッグ モード [デバッグなしで開始] (CTRL+F5) を使用してアプリケーションをテストすると、次のエラーが発生します。
'Microsoft.ACE.OLEDB.14.0' プロバイダーがローカル コンピューターに登録されていません。
Microsoft omepage: http://www.microsoft.com/download/en/details.aspx?id=13255から「Microsoft Access データベース エンジン 2010 再頒布可能パッケージ」(64 ビット) をダウンロードしてインストールしようとしました。
残念ながら、問題は解決しませんでした。myAdapptor.Fill() が実行されると、まだエラーが発生します。なにが問題ですか?