C#

(C#) 액세스(Access database, .accdb) 데이터 가져오기

코딩ABC 2023. 6. 24. 21:49
반응형

Access 데이터베이스에 연결해서 테이블에 저장된 데이터를 가져오는 코드입니다.

  • .accdb를 사용했습니다.
  • Visual Studio 2022버전에서 실습을 했습니다.
  • x64
  • 오류 메시지 해결

오류 메시지

System.InvalidOperationException: "Microsot.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다.'

 

예제

1.  프로젝트를 생성합니다.

  • Windows Forms 앱(.NET Framework)를 선택합니다.

 

2. 폼(Form)에 ListBox 1개, 버튼 1개를 배치합니다.

실행한 결과는 아래와 같습니다. 결과를 보면서 코드를 확인하는 것이 이해가 쉬울 것 같습니다.

액세스(Access database, .accdb) 데이터 가져오기

3. 버튼에 코드를 작성합니다.

using System.Data.OleDb;
...

        private void button7_Click(object sender, EventArgs e)
        {

            //.accdb 연결 문자
            string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\temp\학사.accdb";

            OleDbConnection conn = new OleDbConnection(strConnection);
            conn.Open();
            string sql = "select * from hakjuk";
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            OleDbDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                listBox1.Items.Add(reader["hakbun"] + "\t" + reader["nm"]);
            }
            reader.Close();
            conn.Close();
        }

 

4. 아래와 같은 오류가 뜨면, accdb는 64비트로 실행해야 해결됩니다.

System.InvalidOperationException: "Microsot.ACE.OLEDB.12.0' 공급자는 로컬 컴퓨터에 등록할 수 없습니다.'"

액세스(Access database, .accdb) 데이터 가져오기

 

64비트로 실행하는 방법은 다음과 같습니다.

[구성 관리자]를 선택합니다.

구성관리자

[새로 만들기]를 선택합니다.

플랫폼에서 "x64"를 선택합니다.

구성관리자
구성관리자

 

반응형