Подключение ms access к asp.net

Я пытаюсь подключить базу данных MS Access к ASP.Net для получения данных. Но ошибка ниже продолжает появляться. Я решил, что это связано с соединением Web.config, но что я делаю не так, я все еще не могу понять?

Ошибка-

strong textSystem.ArgumentException: Keyword not supported: 'provider'. at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at System.Data.SqlClient.SqlConnection..ctor(String connectionString, SqlCredential credential) at System.Data.SqlClient.SqlConnection..ctor(String connectionString) at Dummy.Page_Load(Object sender, EventArgs e) in C:\xyz\Dummy.aspx.cs:line 19

  <connectionStrings>
   <add name="MS_Access_DatabaseConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\temp\\Microsoft Access Database\\MS_Access_Database.mdb;" providerName="System.Data.OleDb"  />
  </connectionStrings>

protected void Page_Load(object sender, EventArgs e)
    {
        string connectionString = ConfigurationManager.ConnectionStrings["MS_Access_DatabaseConnectionString"].ConnectionString;

    try
    {
        SqlConnection conn = new SqlConnection(connectionString);
        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }

        String sql = "SELECT [Bank], [Amount] FROM [BankDetails]";


        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {

                    Response.Write("" + reader.GetString(0));
                }

            }
        }
    }
    catch (Exception ex)
    {
        Response.Write(ex);
    }

Измените ваш SqlConnection, SqlCommand, SqlDataReader на OleDbConnection, OleDbCommand, OleDbDataAdapter

Izzy 10.09.2018 09:47

ваша строка подключения неверна ... посмотрите - connectionstrings.com/access

NoviceProgrammer 10.09.2018 09:50

Кстати, почему вы используете Доступ вместо, например, SQL Server Express? Access - это настольная файловая база данных, не предназначенная для веб-сайтов.

Panagiotis Kanavos 10.09.2018 09:51

Строка подключения не была проблемой. Я использую Access, потому что все еще учусь.

Anshu Saket 10.09.2018 10:45
0
4
694
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вместо использования SqlConnection вы должны использовать OleDbConnection, потому что SqlConnection пытается прочитать вашу строку подключения как строку подключения SQL Server, а не базу данных Access:

try
{
    OleDbConnection conn = new OleDbConnection(connectionString);
    if (conn.State == ConnectionState.Closed)
    {
        conn.Open();
    }

    String OleDb = "SELECT [Bank], [Amount] FROM [BankDetails]";


    using (OleDbCommand cmd = new OleDbCommand(OleDb, conn))
    {
        using (OleDbDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Response.Write("" + reader.GetString(0));
            }

        }
    }
}
catch (Exception ex)
{
    Response.Write(ex);
}

Спасибо, с моей стороны было глупо упустить очевидное. Больше не повторится.

Anshu Saket 10.09.2018 10:43
  1. Добавьте using System.Data.OleDb.OleDbConnection; в начало файла и удалите using System.Data.SqlConnection;
  2. Измените свой код на.

    using (OleDbConnection con = new OleDbConnection (connDB)) // вот ошибка { }

Другие вопросы по теме