.NET Framework 애플리케이션에서 Access 데이터베이스에 커넥트

참고 항목

데이터 집합 및 관련 클래스는 2000년대 초반에 적용된 레거시 .NET Framework 기술로, 응용 프로그램이 데이터베이스에서 연결이 끊어진 동안 응용 프로그램이 메모리의 데이터로 작업할 수 있도록 합니다. 사용자가 데이터를 수정하고 변경 내용을 다시 데이터베이스에 유지할 수 있도록 하는 애플리케이션에 특히 유용합니다. 데이터 세트는 매우 성공적인 기술로 입증되었지만 새 .NET 애플리케이션은 Entity Framework Core를 사용하는 것이 좋습니다. Entity Framework는 표 형식 데이터를 개체 모델로 사용하는 더 자연스러운 방법을 제공하며 더 단순한 프로그래밍 인터페이스를 제공합니다.

Visual Studio를 사용하여 Access 데이터베이스( .mdb 파일 또는 .accdb 파일)에 연결할 수 있습니다. 연결을 정의한 후 데이터 원본 창에 데이터가 나타납니다. 아 창에서 테이블 또는 뷰를 디자인 화면으로 끌 수 있습니다.

참고 항목

Visual Studio 사용하여 Access 데이터베이스에 연결하는 경우, Visual Studio 2022 이전 Visual Studio 버전은 모두 32비트 프로세스라는 점에 유의해야 합니다. Visual Studio 2019 이전 버전의 일부 데이터 도구는 32비트 데이터 공급자를 사용하여 Access 데이터베이스에 연결해야 한다는 뜻입니다.

Visual Studio 2022를 사용하여 Access 데이터베이스에 연결하는 경우에는 Visual Studio 2022가 64비트 프로세스라는 점에 주의해야 합니다. Visual Studio의 일부 데이터 도구는 32비트 데이터 공급자로는 Access 데이터베이스에 연결할 수 없다는 뜻입니다.

Access 데이터베이스에 연결하는 32비트 애플리케이션을 유지 관리해야 하는 경우에도 Visual Studio 2022에서 애플리케이션을 빌드하고 실행할 수 있습니다. 그러나 서버 탐색기, 데이터 원본 마법사 또는 데이터 세트 디자이너 같은 Visual Studio Data Tools를 사용해야 하는 경우에는 여전히 32비트 프로세스인 Visual Studio 이전 버전을 사용해야 합니다. 32비트 프로세스였던 Visual Studio의 마지막 버전은 Visual Studio 2019입니다.

프로젝트를 64비트 프로세스로 변환하려는 경우 ACE(액세스 연결 엔진)라고도 하는 64비트 Microsoft Access 데이터베이스 엔진을 사용하는 것이 좋습니다. 자세한 내용은 Jet 및 ODBC 드라이버용 OLE DB 공급자는 32비트 버전만 사용 가능을 참조하세요.

필수 조건

이러한 절차를 사용하려면 다음이 필요합니다.

  • Visual Studio
  • Windows Forms 또는 WPF 프로젝트
  • Access 데이터베이스(.accdb 파일) 또는 Access 2000-2003 데이터베이스(.mdb 파일). 파일 형식에 해당하는 절차를 따릅니다.

.accdb 파일에 대한 데이터 세트 만들기

다음 절차를 사용하여 Microsoft 365, Access 2016, Access 2013, Access 2010 또는 Access 2007로 만든 데이터베이스에 연결할 수 있습니다.

  1. Visual Studio에서 Windows Forms 또는 WPF 애플리케이션 프로젝트를 엽니다.

  2. 데이터 원본 창을 열려면 Ctrl+Q를 누르고 검색 상자에 "data"를 입력한 다음 데이터 원본 창을 선택합니다. 또는 보기 메뉴에서 다른 창>데이터 원본을 선택합니다. 또는 키보드에서 Shift+Alt+D를 누릅니다.

    검색 상자에 [데이터 원본]이 입력된 스크린샷

  3. 데이터 소스 창에서 새 데이터 소스 추가를 클릭합니다.

    데이터 원본 구성 마법사가 열립니다.

    [데이터 원본 구성 마법사]의 스크린샷

  4. 데이터 원본 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 선택합니다.

  5. 데이터 모델 선택 페이지에서 데이터 세트를 선택하고 다음을 선택합니다.

    [데이터베이스 모델 선택] 페이지의 스크린샷

  6. 데이터 연결 선택 페이지에서 새 연결을 선택하여 새 데이터 연결을 구성합니다.

    [데이터 연결 선택] 페이지의 스크린샷

    연결 추가 대화 상자가 열립니다.

    [연결 추가] 대화 상자의 스크린샷

  7. 데이터 원본Microsoft Access 데이터베이스 파일로 설정되어 있지 않다면 변경 단추를 선택합니다.

    데이터 원본 변경 대화 상자가 열립니다. 데이터 원본 목록에서 Microsoft Access 데이터베이스 파일을 선택합니다. .NET Framework Data Provider for OLE DB 옵션이 미리 선택되어 있습니다. 확인을 선택합니다.

    [데이터 원본 선택] 대화 상자의 스크린샷

  8. [Database file name ] 옆에 있는 [Browse ]를 선택한 다음 파일을 찾아 [Open] .accdb 을 선택합니다 .

    참고 항목

    Microsoft Office와 Visual Studio의 비트 수(32비트 또는 64비트)가 일치하지 않으면 Access 데이터베이스에 연결하는 동안 오류가 표시됩니다. Visual Studio 2019에서는 데이터베이스 공급자가 등록되지 않았다는 오류가 발생합니다. Visual Studio 2022에서는 32비트 데이터 공급자에 연결할 수 없다는 오류가 표시됩니다. 이 오류를 해결하려면 32비트 버전 Office 사용하는 경우에는 Visual Studio 2019 이전 버전을 사용하는지, 64비트 버전 Office를 사용하는 경우에는 Visual Studio 2022 이상을 사용하는지 확인해야 합니다.

  9. (필요한 경우) 사용자 이름과 암호를 입력하고 확인을 선택합니다.

  10. 데이터 연결 선택 페이지에서 다음을 선택합니다.

    데이터 파일이 현재 프로젝트에 없음을 알리는 대화 상자가 표시될 수 있습니다. 또는 아니요를 선택하십시오.

  11. 애플리케이션 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

    페이지의 스크린샷

  12. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

    [데이터베이스 개체 선택] 페이지의 스크린샷

  13. 데이터 세트에 포함한 테이블이나 뷰를 선택한 다음 마침을 선택합니다.

    데이터 세트가 프로젝트에 추가되고 테이블과 뷰가 데이터 원본 창에 나타납니다.

    데이터베이스 개체가 입력된 데이터 원본 창의 스크린샷

  14. 64비트 Access 데이터베이스 엔진이 있는 64비트 컴퓨터에서 애플리케이션이 64비트 애플리케이션으로 실행되는지 확인해야 합니다. 프로젝트 속성을 엽니다(Alt+Enter를 누르거나 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 속성 선택). 빌드 탭에서 32비트 선호 확인란의 선택을 취소합니다.

.accdb 파일에 대한 데이터 세트 만들기

다음 절차를 사용하여 Microsoft 365, Access 2016, Access 2013, Access 2010 또는 Access 2007로 만든 데이터베이스에 연결할 수 있습니다.

  1. Visual Studio에서 Windows Forms 또는 WPF 애플리케이션 프로젝트를 엽니다.

  2. 데이터 원본 창을 열려면 Ctrl+Q를 누르고 검색 상자에 "data"를 입력한 다음 데이터 원본 창을 선택합니다. 또는 보기 메뉴에서 다른 창>데이터 원본을 선택합니다. 또는 키보드에서 Shift+Alt+D를 누릅니다.

    다른 창 데이터 소스 보기

  3. 데이터 소스 창에서 새 데이터 소스 추가를 클릭합니다.

    데이터 원본 구성 마법사가 열립니다.

  4. 데이터 원본 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 선택합니다.

  5. 데이터 모델 선택 페이지에서 데이터 세트를 선택하고 다음을 선택합니다.

    [데이터베이스 모델 선택] 페이지의 스크린샷

  6. 데이터 연결 선택 페이지에서 새 연결을 선택하여 새 데이터 연결을 구성합니다.

    [데이터 연결 선택] 페이지의 스크린샷

    연결 추가 대화 상자가 열립니다.

    [연결 추가] 대화 상자의 스크린샷

  7. 데이터 원본Microsoft Access 데이터베이스 파일로 설정되어 있지 않다면 변경 단추를 선택합니다.

    데이터 원본 변경 대화 상자가 열립니다. 데이터 원본 목록에서 Microsoft Access 데이터베이스 파일을 선택합니다. .NET Framework Data Provider for OLE DB 옵션이 미리 선택되어 있습니다. 확인을 선택합니다.

    [데이터 원본 선택] 대화 상자의 스크린샷

  8. [Database file name ] 옆에 있는 [Browse ]를 선택한 다음 파일을 찾아 [Open] .accdb 을 선택합니다 .

    참고 항목

    Microsoft Office와 Visual Studio의 비트 수(32비트 또는 64비트)가 일치하지 않으면 Access 데이터베이스에 연결하는 동안 오류가 표시됩니다. Visual Studio 2019에서는 데이터베이스 공급자가 등록되지 않았다는 오류가 발생합니다. Visual Studio 2022에서는 32비트 데이터 공급자에 연결할 수 없다는 오류가 표시됩니다. 이 오류를 해결하려면 32비트 버전 Office 사용하는 경우에는 Visual Studio 2019 이전 버전을 사용하는지, 64비트 버전 Office를 사용하는 경우에는 Visual Studio 2022 이상을 사용하는지 확인해야 합니다.

  9. (필요한 경우) 사용자 이름과 암호를 입력하고 확인을 선택합니다.

  10. 데이터 연결 선택 페이지에서 다음을 선택합니다.

    데이터 파일이 현재 프로젝트에 없음을 알리는 대화 상자가 표시될 수 있습니다. 또는 아니요를 선택하십시오.

  11. 애플리케이션 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

    페이지의 스크린샷

  12. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  13. 데이터 세트에 포함한 테이블이나 뷰를 선택한 다음 마침을 선택합니다.

    데이터 세트가 프로젝트에 추가되고 테이블과 뷰가 데이터 원본 창에 나타납니다.

.mdb 파일에 대한 데이터 세트 만들기

다음 절차를 사용하여 Access 2000~2003으로 만든 데이터베이스에 연결합니다.

  1. Visual Studio에서 Windows Forms 또는 WPF 애플리케이션 프로젝트를 엽니다.

  2. 보기 메뉴에서 다른 창>데이터 원본을 선택합니다.

  3. 데이터 소스 창에서 새 데이터 소스 추가를 클릭합니다.

    데이터 원본 구성 마법사가 열립니다.

  4. 데이터 원본 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 선택합니다.

  5. 데이터 모델 선택 페이지에서 데이터 세트를 선택하고 다음을 선택합니다.

  6. 데이터 연결 선택 페이지에서 새 연결을 선택하여 새 데이터 연결을 구성합니다.

  7. 데이터 원본이 Microsoft Access 데이터베이스 파일(OLE DB)이 아닌 경우, 변경을 선택하여 데이터 원본 변경 대화 상자를 열고 Microsoft Access 데이터베이스 파일을 선택한 후 확인을 선택합니다.

  8. 데이터베이스 파일 이름에서 연결하려는 파일의 경로와 이름을 .mdb 지정한 다음, 확인을 선택합니다.

    연결 액세스 데이터베이스 파일 추가

  9. 데이터 연결 선택 페이지에서 다음을 선택합니다.

  10. 애플리케이션 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

  11. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  12. 데이터 세트에 포함할 테이블이나 뷰를 선택한 다음 마침을 선택합니다.

    데이터 세트가 프로젝트에 추가되고 테이블과 뷰가 데이터 원본 창에 나타납니다.

생성된 코드 보기

데이터 도구는 양식 디자이너에서 특정 작업을 수행할 때 많은 코드를 자동으로 생성하도록 구성됩니다. 예를 들어 테이블을 양식에 끌어다 놓으면 DataGridView가 추가되고 데이터를 컨트롤에 연결하는 코드가 생성됩니다. *.Designer.cs 파일에서 이 코드를 볼 수 있습니다. Visual Studio는 다음과 같은 여러 개인 멤버를 추가합니다.

private Database11DataSet database11DataSet;
private System.Windows.Forms.BindingSource ordersBindingSource;
private Database11DataSetTableAdapters.OrdersTableAdapter ordersTableAdapter;
private Database11DataSetTableAdapters.TableAdapterManager tableAdapterManager;
private System.Windows.Forms.BindingNavigator ordersBindingNavigator;
private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem;
private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
private System.Windows.Forms.ToolStripButton ordersBindingNavigatorSaveItem;
private System.Windows.Forms.DataGridView ordersDataGridView;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12;

숨겨진 영역을 확장하면 Visual Studio에서 양식으로 드래그한 테이블에 데이터 바인딩이 있는 DataGridView 컨트롤을 설정하기 위해 많은 양의 코드가 추가되는 것을 볼 수 있습니다.

또한 기본 양식 코드 숨김 파일에서 Visual Studio는 저장 작업을 처리하는 코드를 추가하여 대화형 변경 내용을 데이터에 저장하고 테이블을 테이블 어댑터에 로드하는 코드를 추가합니다.

private void ordersBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
    this.Validate();
    this.ordersBindingSource.EndEdit();
    this.tableAdapterManager.UpdateAll(this.database11DataSet);

}

private void Form1_Load(object sender, EventArgs e)
{
   // TODO: This line of code loads data into the 'database11DataSet.Orders' table. You can move, or remove it, as needed.
   this.ordersTableAdapter.Fill(this.database11DataSet.Orders);
}

축하합니다! Visual Studio의 약간의 도움으로 Access 데이터 테이블에 대한 양식 기반 편집 환경을 만들었습니다.

다음 단계

방금 만든 데이터 세트를 데이터 원본 창에서 사용할 수 있습니다. 다음 작업 중 어떤 작업이든 수행할 수 있습니다.