'Generic'에 해당되는 글 2건

  1. 2009.11.27 SqlHelper Class + SqlPrmCollection - 파라미터컬렉션
  2. 2009.04.28 Dictionary Collection

SqlHelper Class + SqlPrmCollection - 파라미터컬렉션

.Net 2009. 11. 27. 10:56 posted by 무명시인

시작하기


그럼 전편 강좌에서 사용한 SqlPrmCollection 클래스에 관해 알아보도록 하겠습니다..

.net framework 2.x 부터 도입된 제넥릭과 컬렉션 개념이 조금 들어가는데요..

그럼 하나씩 알아보도록 하겠습니다..

1. 시작하기

사용자 삽입 이미지


역시 그리 복잡한 구조는 아닌 클래스가 되겠습니다.

List<object> 등의 필드 멤버와 인덱서

생성자와 override 된 메소드

IEnumerable 인터페이스를 상속받아 구현된 멤버 GetEnumerator()

등으로 구성되겠습니다.

2. 필드멤버와 인덱서, 생성자

/// 
/// List<object> for container
/// 
private List<object> list;

/// 
/// total count
/// 
public int Count { get { return this.list.Count; } }

/// 
/// indexer
/// 
/// 
/// 
public SqlParameter this[int index] { get { return (SqlParameter)this.list[index]; } }

/// 
/// creator
/// 
public SqlPrmCollection()
{
	list = new List<object>();
}


List<object> 에 SqlParameter 를 담는 구조로 갈것입니다.

그래서 필드 멤버로 List<object> 를 정의 하고요..

컬렉션을 해체할때..

내용물의 갯수를 확일할 수 있는 속성(count)와..

인덱스로 접근할 수 있는 인덱서를 정의 합니다..

뒷부분에 Add 메소드를 정의할때 자세히 코드를 보시면 알듯합니다..



3. IEnumerable.GetEnumerator()

/// 
/// 개체의 열거자를 반환
/// 
/// IEnumerator
public IEnumerator GetEnumerator()
{
	return this.list.GetEnumerator();
}


IEnumerable의 멤버를 구현합니다..

컬렉션을 해체할때..

GetEnumerator() 메소드를 호충하여..

내용물을 해체 합니다..

4. Add

/// 
/// List<object> 에 SqlParameter 개체를 추가 한다.
/// 
/// ParameterName
/// Value
public void Add(string name, object value)
{
	SqlParameter prm = new SqlParameter();

	prm.ParameterName = name;
	prm.Value = value;

	this.list.Add(prm);
}

/// 
/// List<object> 에 SqlParameter 개체를 추가 한다.
/// 
/// ParameterName
/// SqlDbType
/// Size
/// Value
public void Add(string name, SqlDbType type, int size, object value)
{
	SqlParameter prm = new SqlParameter();

	prm.ParameterName = name;
	prm.SqlDbType = type;
	prm.Size = size;
	prm.Value = value;

	this.list.Add(prm);
}

/// 
/// List<object> 에 SqlParameter 개체를 추가 한다.
/// 
/// ParameterName
/// SqlDbType
/// Size
/// Direction
public void Add(string name, SqlDbType type, int size, ParameterDirection direction)
{
	SqlParameter prm = new SqlParameter();

	prm.ParameterName = name;
	prm.SqlDbType = type;
	prm.Size = size;
	prm.Direction = direction;

	this.list.Add(prm);
}

/// 
/// List<object> 에 SqlParameter 개체를 추가 한다.
/// 
/// ParameterName
/// SqlDbType
/// Size
/// Direction
/// Value
public void Add(string name, SqlDbType type, int size, ParameterDirection direction, object value)
{
	SqlParameter prm = new SqlParameter();

	prm.ParameterName = name;
	prm.SqlDbType = type;
	prm.Size = size;
	prm.Direction = direction;
	prm.Value = value;

	this.list.Add(prm);
}

사용자 삽입 이미지


List<object> 에 SqlParameter 개체를 담습니다..

각 목적에 따라 메소드를 override 했는데요..

아웃풋 파라미터의 목적이나, 파라미터의 타입, 사이즈를 지정합니다.



4. Clear

/// 
/// Collection 의 내용을 모두 삭제 합니다.
/// 
public void Clear()
{
	this.list.Clear();
} 


컬렉션의 내용을 모두 삭제합니다.

왜 만들었는지 이유가..

기억이 나질 않습니다..ㅡㅡ;;;

5. 마무리

대략적으로 두 아티클을 통해서..

SqlHelper 클래스를 만들어 보았는데요..

우선 아쉬운 부분은 Transaction 이 빠졌다는 것입니다...

아 아쉽습니다..

이 부분은 차후 포스팅을 하기로 하구요..

그럼 이만 마치겠습니다.

소스는 좀 정리를 마치고 예제와 함께 올리도록 하겠습니다..

Dictionary Collection

.Net 2009. 4. 28. 15:18 posted by 무명시인
사용자 삽입 이미지
사용자 삽입 이미지


(1) 선언과 생성

(2) (3) 호출과 파싱