데이터베이스 접근 은 프로그램 에서 가장 보편적으로 응용 되 는 부분 이다.C\#와 ADO.NET 이 도입 되면 서 이런 조작 은 더욱 간단 해 졌 다.이 글 은 네 가지 가장 기초적인 데이터베이스 조작 을 시범 할 것 이다. ● 데 이 터 를 읽다.그 중에서 여러 가지 데이터 형식:정형,문자열,날짜 형 을 포함한다. ● 데 이 터 를 쓰다.데 이 터 를 읽 는 것 처럼 다양한 종류의 데 이 터 를 써 야 합 니 다.이것 은 SQL 문 구 를 통 해 완성 할 수 있다. ● 데 이 터 를 업데이트 하거나 수정 합 니 다.우 리 는 SQL 문 구 를 다시 사용 할 것 이다. ● 데 이 터 를 삭제 하 다.SQL 로 구현. 상술 한 조작 은 모두 Microsoft 에 기초 해 야 한다. Access 2000 데이터베이스 입 니 다.그러나 연결 문자열 을 간단하게 수정 해 야 SQL 이나 다른 ADO 데 이 터 를 사용 할 수 있 습 니 다. 조작 을 시작 하 다 ADO 클래스 를 사용 하기 전에,우 리 는 ADO.NET 의 명칭 공간 과 일부 상용 데이터 클래스 를 포함 할 것 이다.아래 코드 를 데이터베이스 작업 을 하고 싶 은 곳 에 넣 으 세 요.그것 의 구체 적 인 위 치 는 네 임 스페이스 줄 다음,클래스 성명 이전 이 어야 합 니 다. using System.Data; // State variables using System.Data.ADO; // Database using System.Globalization; // Date System.Data 네 임 스페이스 에 파 라 메 터 를 추가 해 야 할 지도 모 릅 니 다.이것 은 프로젝트 의 유형 에 달 려 있 습 니 다.당신 이 추가 한 코드 의 컴 파일 정 보 는 이 점 을 알려 줄 것 입 니 다.System.Data 네 임 스페이스 추가 하기: ● 오른쪽 클릭 Solution explorer-매개 변수 옵션; ● 인자 추가 선택; ● .NET 프레임 표시 줄 선택; ● System.data.dll 항목 을 더 블 클릭 합 니 다. ● OK 선택 하기; ● System.data 가 Solution 에 나타 날 것 같 습 니 다. explorer 의 매개 변수 목록 에 있 습 니 다. 대부분의 작업 에서 연결 문자열 을 사용 하기 때문에 사용 하 는 클래스 에 포함 시 키 는 것 을 권장 합 니 다. 메모:프로그램 에서 데이터베이스 파일 의 경로 가 아래 와 다 를 수 있 습 니 다. //Attributes public const string DB_CONN_STRING = "Driver={Microsoft Access Driver (*.mdb)}; "+ "DBQ=D:\\CS\\TestDbReadWrite\\SimpleTest.mdb"; 데이터 읽 기 지금의 조작 은 비교적 재미있다.읽 기 는 ADODataReader 클래스 를 통 해 이 루어 집 니 다.(Chris 참조. Maunder 의 글"The ADO.NET ADODataReader CLASS" 더 알 기 위해).읽 는 작업 절 차 는 다음 과 같 습 니 다. ● ADO 연결 로 데이터베이스 열기 ADOConnection conn = new ADOConnection(DB_CONN_STRING); conn.Open(); ● 가 져 올 데 이 터 를 확인 하기 위해 SQL 문 구 를 만 듭 니 다.이 명령 을 실행 한 후 ADODataReader 대상 을 되 돌려 줍 니 다.Execute 방법의 OUT 키 워드 를 주의 하 십시오.이것 은 C\#에서 파 라 메 터 를 전달 하 는 방식 입 니 다. ADODataReader dr; ADOCommand cmd = new ADOCommand( "Select * FROM Person", conn ); cmd.Execute( out dr); ● 완 료 될 때 까지 ADODataReader 의 모든 기록 을 반복 합 니 다.메모:데 이 터 는 문자열 로 직접 되 돌아 갑 니 다.필드 이름 은 읽 을 필드 를 표시 합 니 다. while( dr.Read() ) { System.Console.WriteLine( dr["FirstName"] ); } ● 깨끗이 제거 하 다 그러나 우수한 프로그래머 로 서 코드 를 try/catch/finally 에 두 어야 합 니 다. 우리 가 모든 사 고 를 통제 할 수 있 도록 보장 한다. try { .... the database operations ... } catch( Exception ex ) { System.Console.WriteLine( "READING:" ); System.Console.WriteLine( " ERROR:" + ex.Message ); System.Console.WriteLine( " SQL :" + sSqlCmd ); System.Console.WriteLine( " Conn.:" + DB_CONN_STRING ); } finally { // Close the connection if( conn.State == DBObjectState.Open ) conn.Close(); } 다른 데이터 형식 읽 기 ["stuff"]보통 어떤 종류의 문자열 을 되 돌려 줍 니 다.하지만 정형 또는 DateTime 대상 은 이 데 이 터 를 열거 해 야 합 니 다.간단 한 예 나 ADODataReade 에 만들어 진 많은 예 중 하나 로 설명 할 수 있 습 니 다.예 를 들 면: int nOrdinalAge = dr.GetOrdinal( "Age" ); int nAge = dr.GetInt32( nOrdinalAge ); DateTime tUpdated = (DateTime)dr["Updated"]; 이름 을 통 해 GetOrdinal 필드 를 찾 는 방법 에 주의 하 십시오.필드 가 비어 있 으 면 위의 코드 에 이상 이 생 길 수 있 습 니 다.이 경우 저 희 는 IsNull 방법 으로 데이터 가 존재 하 는 지 확인 합 니 다. int nOrdinalAge = dr.GetOrdinal( "Age" ); if( dr.IsNull( nOrdinalAge ) ) { System.Console.WriteLine( " Age : Not given!" ); } else { int nAge = dr.GetInt32( nOrdinalAge ); System.Console.WriteLine( " Age : " + nAge ); 삽입,수정,삭제 및 기타 SQL 명령 삽입,수정,삭제 용 SQL 문 구 는 쉽게 이 루어 집 니 다.다음 코드 는 SQL 명령 을 통 해 기록 을 삽입 합 니 다. // SQL command String sSQLCommand = "Insert INTO Person (Age, FirstName, Description, Updated) " + "VALUES( 55, 'Bob', 'Is a Penguin', '2001/12/25 20:30:15' );"; // Create the command object ADOCommand cmdAdder = new ADOCommand( sSQLCommand, DB_CONN_STRING); cmdAdder.ActiveConnection.Open(); // Execute the SQL command int nNoAdded = cmdAdder.ExecuteNonQuery(); System.Console.WriteLine( "Row(s) Added = " + nNoAdded + "" ); 주의:try/catch 는 상기 예 에 나타 나 지 않 았 고 실제로 써 야 합 니 다. 끼어들다 상기 코드 는 SQL 문 구 를 통 해 기록 을 삽입 합 니 다.이 명령 은 잠시 후에 집행 된다.명령 형식 에서 주의해 야 할 것 은: ● 수치 직접 할당,서로 다른 따옴표('); ● 문자열 은 반드시 작은 따옴표 로 묶 어야 한다. ('blah'); ● 문자열 에는 작은 따옴표 나 작은 따옴표 가 포함 되 어 있 지 않 습 니 다. ● 날짜 와 시간 은 모두 국제 형식 으로 작은 따옴표 에 포함 되 어야 한다.YYYYY/MM/DD HH:MM:SS') 수정 하 다. Update 명령 은 수 리 될 기록 과 수 정 된 기록 을 표시 합 니 다.Execute NonQuery()가 돌아 오 는 값 은 변 화 된 기록 의 수 를 표시 합 니 다.표 에 5 개의 Peter 가 있 으 면 5 로 돌아 갑 니 다. String sSQLCommand = "Update Person SET Age = 27 Where FirstName = 'Peter'"; 삭제 Delete 명령 은 삭제 할 기록 을 표시 합 니 다.이게 몇 개 일 수도 있어.Execute NonQuery()가 되 돌려 주 는 값 은 변 화 된 기록 의 수 를 표시 합 니 다.표 에 2 개의 Bobo 가 있 으 면 2 를 되 돌려 줍 니 다.이 두 보 보 는 모두 삭 제 됩 니 다. String sSQLCommand = "Delete FROM Person Where FirstName = 'Bobo'"; 샘플 프로그램 샘플 은 Microsoft 를 실행 하 는 간단 한 제어 프로그램 입 니 다. Access 데이터베이스 에서 제공 하 는 모든 작업.Visual Studio.NET IDE 는 TestDbReadWrite.csproj 를 프로젝트 파일 로 열 면 컴 파일 할 수 있 습 니 다.MainConsole.cs 에서 DB 변경CONN_STRIN 의 값 은 Simple Test.mdb 를 가리 키 며 컴 파일 합 니 다.