SQL Server 의 비트 연산 기능 을 통 해 다 중 검색 방법 을 교묘 하 게 해결 합 니 다.

int 를 사용 하 든 varchar 를 사용 하 든 Status 에 대한 다 중 선택 조 회 는 대응 하기 어렵다.예 를 들 어 일반적인 사고방식 에서 customer Status 의 Enum 설정 은 다음 과 같다
 
[Serializable]
public enum CustomerStatus
{
New = 0,
Active = 1,
Overdue = 2,
Suspended = 3,
Closing = 4,
Closed = 5
}
데이터베이스 에 int 형식 으로 Status 값 을 저장 했다.페이지 에서 Active,Overdue,Suspended 상태의 Customer 를 검색 하려 면 어떻게 해 야 합 니까?프로그램 은 이 세 개의 상태 값 을 문자열 로 맞 춰 SQL 에 전달 해 야 합 니까?실현 할 수 있 지만 상당히 비효 율 적 이다.현재 표준 해결 방안 을 제시 합 니 다.(1)검색 조건 으로 사 용 될 수 있 는 모든 것 은 하위 연산 방식 에 따라 정의 해 야 합 니 다
 
public enum CustomerStatus
{
New = 1,
Active = 1<<1,
Overdue = 1<<2,
Suspended = 1<<3,
Closing = 1<<4,
Closed = 1<<5
}
(2).데이터 베 이 스 를 디자인 할 때 Status 의 필드 는 int 형 이 어야 합 니 다.이렇게 하면 우리 가 다 중 검색 을 할 때@Status 의 Value=Customer Status.active|Customer Status.Overdue|Customer Status.Suspended(3).검색 어 는 다음 과 같다.

좋은 웹페이지 즐겨찾기