C\#ADO.NET 데이터베이스 에 대한 간단 한 조작 방법

데이터베이스 접근 은 프로그램 에서 가장 보편적으로 응용 되 는 부분 이다.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 를 가리 키 며 컴 파일 합 니 다.

좋은 웹페이지 즐겨찾기