MS Access Database Connection with C# under ASP.Ne

2019-02-27 13:20发布

问题:

I am trying to connect my new Project (ASP.Net Core Framework) with Access Database.

What do I need to enter into: appsettings.json -> "ConnectionStrings"?

And do I have to install something for it?

This framework is new and unfortunately I found no much on the Internet.

I need to connect exactly "Access database".

I would be very happy for detailed information.

回答1:

From this link : https://blogs.msdn.microsoft.com/dotnet/2016/11/09/net-core-data-access/

What about OLE DB?

OLE DB has been a great way to access various data sources in a uniform manner, but it was based on COM, which is a Windows-only technology, and as such was not the best fit for a cross-platform technology such as .NET Core. It is also unsupported in SQL Server versions 2014 and later. For those reasons, OLE DB won’t be supported by .NET Core.



回答2:

You can use the Entity Framework Core which is highly recommended for ASP.net Core applications. Also there are a lot of tutorials out there for using it.

The official documentation lists a suitable Provider for EF Core:

EntityFrameworkCore.Jet -> Microsoft Access files

Please make sure reading the limitations first from the GitHub Page and check if it's still passes your requirements.

Personally i haven't used it yet, but i'm pretty sure that the whole thing can't be too complicated.



回答3:

Use the "Access Database Engine", which provides an ODBC interface to your application. Be sure to use the 64-bit version (since dotnet core is 64 bit only). Note that it is safe for single-threaded access only. Use the passive parameter at install since the additional Access components are not needed.

AccessDatabaseEngine_X64.exe /passive



回答4:

Looks here: https://www.connectionstrings.com/

Specifically, here: https://www.connectionstrings.com/access/

Also, try this.

using System;
using System.Windows.Forms;
using System.Data.Odbc; 

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string connetionString = null;
            OdbcConnection cnn ;
            connetionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=yourdatabasename.mdb;";
            cnn = new OdbcConnection(connetionString);
            try
            {
                cnn.Open();
                MessageBox.Show ("Connection Open ! ");
                cnn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can not open connection ! ");
            }
        }
    }
}

Try this as well...

using System;
using System.Windows.Forms;
using System.Data.OleDb; 

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string connetionString = null;
            OleDbConnection cnn ;
            connetionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourdatabasename.mdb;";
            cnn = new OleDbConnection(connetionString);
            try
            {
                cnn.Open();
                MessageBox.Show ("Connection Open ! ");
                cnn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can not open connection ! ");
            }
        }
    }
}