커넥션 오브젝트
- 데이터 원본과의 물리적 접속 – 객체 속성은 데이터 공급자, 접속하고자 하는 데이터 원본, 접속 문자열로 구성 – 객체 메서드는 접속 Open 및 Close, 데이터베이스 변경 및 트랜잭션 관리 – 데이터 공급자만 다를 뿐 객체 생성 방법과 속성, 메서드 이용 방법은 동일하다.
- – 주요 속성
- * ConnectionString : 연결 문자열 지정 또는 받기 * Connection Timeout : Timeout 받기 (기본 15초) * DataBase : 연결한 데이터베이스 이름 * DataSourceOleDb : 데이터베이스 소스 위치와 파일 이름 : 연결하기 SQL Server Base : 연결자명 * DataSourceOleDb : Proverion SourceOleDb : 데이터베이스 소스 위치와 파일 이름 : 접속자 : 연결하기 SQL Server
- – 주요 메서드
- * Open : 데이터베이스 연결 * Change Database : 연결된 데이터베이스 변경 * BeginTransaction : DB 트랜잭션 시작 지정 * Create Command : Command 객체 생성 * Close : 데이터베이스 연결 해제
- – 이벤트
- * StateChange : .NET data provider에 의한 연결 상태 변경 시 발생 * InfoMessage : SQL Server가 경고 및 정보 제공 메시지를 반환할 때 발생
- – Connection string parameters
- * Provider ( OLE DB only ) Access : Microsoft . JET . OLEDB . 4 . 0 Oracle – MSDAORAMS SQL – SQLOLEDB * Data Source ( server ) : 데이터베이스 위치 ( Domain or IPAddress ) * Initial Catalog ( database ) : 데이터 베이스 이름 * User ID / Password : 인증 정보
- – OleDbConnection 예제
- using System ; using System . Data ; using System . Data . OleDb ; namespace Connection { class Class 1 { static void Main ( string [ ] args ) { string strConn = ” Provider = Microsoft . Jet . OLEDB . 4 . 0 ; ” + @ ” Data Source = C : Inetpubiissamplessdkaspdatabaseauthors . mdb ; ” ;
- OleDbConnection conn = new OleDbConnection ( strConn ) ;
- // or // OleDbConnection conn = new OleDbConnection ( ) ; // conn . ConnectionString = strConn ;
- conn . Open ( ) ; Console . WriteLine ( ” Database = ” + conn . Database ) ; Console . WriteLine ( ” DataSource = ” + conn . DataSource ) ; Console . WriteLine ( ” DataServerVersion = ” + conn . ServerVersion ) ; Console . WriteLine ( ” State = ” + conn . State ) ;
- conn . Close ( ) ; Console . WriteLine ( ” State = ” + conn . State ) ;
- Console.ReadLine();}}}
- – SqlConnection예제
- using System;using System.Data;using System.Data.SqlClient;namespace Connection{class Class1{static void Main(string[] args){string strConn;strConn = “Data Source=localhost;Initial Catalog=northwind;”+ “User ID=sa;Password=sy230;Integrated Security=SSPI;”;//strConn = “Server=localhost;Database=NorthWind;Uid=sa;Pwd=1111”;
- SqlConnection conn = new SqlConnection(strConn);
- // or// SqlConnection conn = new SqlConnection();// conn.ConnectionString = strConn;
- conn.Open();Console.WriteLine(“Database = ” + conn.Database);Console.WriteLine(“DataSource = ” + conn.DataSource);Console.WriteLine(“DataServerVersion = ” + conn.ServerVersion);Console.WriteLine(“State = ” + conn.State);Console.WriteLine(“WorkstationID = ” + conn.WorkstationId +”
- “);
- conn.ChangeDatabase(“pubs”);Console.WriteLine(“Database = ” + conn.Database);
- conn.Close();Console.WriteLine(“State = ” + conn.State);
- Console.ReadLine();}}}
- Command객체
- -데이터 입력, 수정, 삭제 등의 모든 명령을 처리-데이터 소스에 대한 SQL문, Stored procedure를 표시-Connection객체와 상관 없이 생성하고 실행 가능-데이터 소스와 DataSet와의 통신 때문에 DataAdapter개체가 Command객체를 사용-데이터 공급자가 다를 뿐으로 오브젝트 생성 방법과 속성, 메서드의 이용 방법은 마찬가지다.
- -생성자
- * SQL Server 7.0 :SqlCommand comm = SqlCommand(cmdTxt, sqlCon);//orSqlCommand comm = new SqlCommand(cmdTxt);comm.Connection = sqlCon;//orSqlCommand comm = new SqlCommand();comm.Connection = sqlCon;comm.CommandText = cmdTxt;//orSqlCommand comm = sqlCon.CreateComand();comm.CommandText = cmdTxt;
- * OLEDBOleDbCommand comm = OleDbCommand(cmdTxt, oleDbCon);//orOleDbCommand comm = new OleDbCommand(cmdTxt);comm.Connection = oleDbCon;//orOleDbCommand comm = new OleDbCommand();comm.Connection = oleDbCon;comm.CommandText = cmdTxt;//orOleDbCommand comm = sqlCon.CreateComand();comm.CommandText = cmdTxt;
- -주요 속성
- *Connection:Command개체가 사용한 Connection객체의 반환 및 설정.*Command Time Out:명령이 걸리는 시간 지정 또는 받는(Default:30초)*Transaction:명령 실행에 트랜잭션을 지정 또는 받는*UpdateRow Source:업데이트 중의 행에 쿼리 명령 결과를 적용하는 방법을 지정.
- – Both : 출력 매개변수와 처음 반환된 행은 모두 DataSet의 변경된 행에 매핑. – FirstReturnedRecord : 처음 반환된 행의 데이터는 DataSet의 변경된 행에 매핑. – None : 반환된 매개변수와 행이 무시. – Out
- * Command Text : SQL 문이나 저장 프로시저 반환 및 설정.
- SQL : myCom . CommandText = ” SELECT * FROM authors WHERE au _ id = @ id ” ; OLEDB , ODBC : myCom . CommandText = ” SELECT * FROM authors WHERE au _ id = ?”;
- – OLE DB, ODBC 사용 시 실행할 명령문의 ?순서와 파라미터를 추가하는 순서는 같아야 한다.
- * Parameters : Transact-SQL 문이나 지정 프로시저 매개 변수 – ParameterName : 매개 변수 이름 – SqlDBType : 매개 변수 데이터베이스의 필드 타입 – Value : 매개 변수 값 설정 및 확인 – Infut/Infut/Direction : 매개 변수 데이터베이스의 필드 타입 – Oalue : Oalue : 매개 변수 값 설정 및 확인 – Infut/Direput
- * CommandType – CommandText 속성을 해석하는 방법을 나타내는 값을 가져오거나 설정 – Text : SQL 텍스트 명령, Default-Stored Procedure : 저장 프로시저 이름 – TableDirect : 테이블 이름
- [ Text 사용예제 ]SqlCommand cmd = new SqlCommand ( ” delete emp where id = @ id ” , conn ) ; cmd . Parameters . Add ( ” @ id ” , SqlDbType . NVarChar , 15 ) . Value = ” London ” ;
- [ StoredProcedure 사용예제 ]sqlCom . CommandText = ” sp _ ReturnName ” ; sqlCom . CommandType = CommandType . StoredProcedure ; sqlCom . Parameters . Add ( ” @ au _ id ” , SqlDbType . VarChar , 20 ) . Value = ” 527 – 72 – 3246 ” ;
- [ TableDirect 사용예제 ]sqlCom.CommandText=”Users”;sqlCom.CommandType=CommandType.TableDirect;-TableDirect는 .NET Framework DataProvider for OLEDB에서만 지원.-Execut는 .