연결도 했으면 이제 db 에게 명령을 내려 작업을 수행해야겠지요?
db 연결이 성공되면 ms-sql 일 경우 SqlCommand 객체를 사용하시면 되고,
기타 이외의 db 는 OleDbCommand 객체를 사용하면 되죠.
최종적으로 데이터를 가져올 때에도, 데이터를 입력, 수정, 삭제 등 모든 명령은 Command 객체를 사용해야 한다는 것이죠.
SqlCommand 객체 절차를 살펴보죠.
1) Connection 객체를 선언,생성하고
2) Command 객체를 선언, 생성하며
3) Command 객체의 CommandText 속성에 쿼리를 쓸건가? 저장프로시저를 사용할건지를 기재를 해야 합니다.
4) Command 객체의 Connection 프로퍼티에 Connection객체를 설정 해주죠.
5) open() 메소드를 사용하여 db 연결을 하고, SqlCommand 의 Execute 메소를 호출해여 쿼리문 실행이나 저장프로시저를 실행하게 되죠.
6) Close()메소드를 호출하여 db 연결을 끊습니다.
★ 그럼 Sqlcommand 의 클래스에 대해 살펴보죠.
- CommandText
데이터 소스에서 실행할 SQL 문이나 저장 프로시저를 가져오거나 설정
- CommandType
CommandText 속성이 해석될 방법을 나타내는 값을 가져오거나 설정
Text 는 sql 문자열로 이루어진 경우에 사용하며, StoredProcedure 는 저장프로시저의 이름을 지정된 경우에 사용을 합니다.
- Connection
SqlCommand의 인스턴스에서 사용하는 SqlConnection을 가져오거나 설정
이는 DataBase 의 연결을 담당하는 SqlConnection 클래스의 인스턴스를 저장하는 속성입니다.
- Parameters
SqlParameterCollection을 가져오며 CommandText 속성에 sql명령이나 저장프로시저에서 사용할 인자들을 저장하는 속성입니다.
- Transaction
SqlCommand가 실행하는 트랜잭션을 가져오거나 설정.
★ 그럼...SqlCommand 의 주요메소드에 무엇이 있는지 살펴보죠.
- ExecuteNonQuery()
Connection에 대한 SQL 문을 실행하고 영향을 받는 행의 개수를 반환.
즉 CommandText속성에 sql명령의 실행결과가 없는 경우에 사용되죠.
보통 db 에 저장,수정,삭제 명령을 할때 항상 사용이 된답니다.
- ExecuteReader()
CommandText를 Connection에 보내고, SqlDataReader를 생성,
즉 CommandText 에 기재된 sql 명령을 실행하고 그 결과값을 SqlDataReader 객체에 저장하여 return 하는 함수입니다.
- ExecuteScalar()
쿼리를 실행하고 쿼리에서 반환된 결과 집합의 첫번째 행의 첫번째 열 반환.
하나의 숫자값 같은 Single Value 반환시는 ExecuteScalar를 사용합니다
- ExecuteXmlReader()
CommandText를 Connection에 보내고, XmlReader 객체를 생성.
SqlCommand의 Select 쿼리를 수행할 때는 ExecuteReader() 메서드를 사용하지만 XML 형태로 읽어낼 때는 ExecuteXmlReader() 메서드를 사용합니다.
위의 주요메소드가 각각 어떻게 사용되는지 다음 강좌부터 세세히 알아보죠.
posted by 심재운(shimpark@gmail.com)