How to connect to a MS Access file (mdb) using C#?

前端 未结 6 779
迷失自我
迷失自我 2020-11-27 21:24

I\'m trying to connect to a mdb file and I understand that I would need Microsoft.OLEDB.JET.4.0 data provider. Unfortunately, I do not have it installed on the

相关标签:
6条回答
  • 2020-11-27 21:28

    Here's how to use a Jet OLEDB or 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);
    }
    
    0 讨论(0)
  • 2020-11-27 21:33

    The simplest way to connect is through an OdbcConnection using code like this

    using System.Data.Odbc;
    
    using(OdbcConnection myConnection = new OdbcConnection())
    {
        myConnection.ConnectionString = myConnectionString;
        myConnection.Open();
    
        //execute queries, etc
    
    }
    

    where myConnectionString is something like this

    myConnectionString = @"Driver={Microsoft Access Driver (*.mdb)};" + 
    "Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;
    

    See ConnectionStrings

    In alternative you could create a DSN and then use that DSN in your connection string

    • Open the Control Panel - Administrative Tools - ODBC Data Source Manager
    • Go to the System DSN Page and ADD a new DSN
    • Choose the Microsoft Access Driver (*.mdb) and press END
    • Set the Name of the DSN (choose MyDSN for this example)
    • Select the Database to be used
    • Try the Compact or Recover commands to see if the connection works

    now your connectionString could be written in this way

    myConnectionString = "DSN=myDSN;"
    
    0 讨论(0)
  • 2020-11-27 21:33

    You should use "Microsoft OLE DB Provider for ODBC Drivers" to get to access to Microsoft Access. Here is the sample tutorial on using it

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

    0 讨论(0)
  • 2020-11-27 21:40

    Try this..

    using System.Data.OleDb;
    
    OleDbConnection dbConn;
    
    dConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Registration.accdb;");
    
    0 讨论(0)
  • 2020-11-27 21:44

    What Access File extension or you using? The Jet OLEDB or the Ace OLEDB. If your Access DB is .mdb (aka 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;
            }
        }
    }
    
    0 讨论(0)
  • 2020-11-27 21:49

    Another simplest way to connect is through an OdbcConnection using App.config file like this

      <appSettings>  
        <add key="Conn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MyDB.mdb;Persist Security Info=True"/>
      </appSettings>
    

    MyDB.mdb is my database file and it is present in current primary application folder with main exe file.

    if your mdf file has password then use like this

      <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>
    
    0 讨论(0)
提交回复
热议问题