Ответ 1
Вам потребуется Access 2007 Runtime.
Я хочу сделать простое приложение для упражнения, поэтому было бы неплохо подключиться к простой базе данных, например 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 Access Database Engine 2010" (64 бит) из Microsoft omepage: http://www.microsoft.com/download/en/details.aspx?id=13255 p >
К сожалению, это не решило проблему. У меня все еще есть ошибка, когда выполняется myAdapptor.Fill(). Что не так?
Вам потребуется Access 2007 Runtime.
Для других, заинтересованных в моем решении, я понял, что Microsoft.ACE.OLEDB.14.0 не поддерживается для Access 2010. Вместо этого я использовал Microsoft.ACE.OLEDB.12.0
Вы можете загрузить свой "Драйвер системы Office 2007: компоненты подключения к данным" с этого сайта: 2007 Драйвер системы Office: компоненты подключения данных
У меня была аналогичная проблема, но только план старого mdb в моем случае. Provider = Microsoft.Jet.OLEDB.4.0 делает трюк для этого, нет необходимости загружать дополнительные промежутки времени.
добавить с помощью библиотеки System.Data.OleDb
.
теперь для строки подключения
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Aishwar NIGAM\\Documents\\indianOil.accdb");