2011-11-09 5 views
0

나는 내가 위의 테이블에서 중복 번호를 확인 할 필요가 여기에 표 아래처럼라는 테이블,중복되는 번호를 확인하는 방법은 무엇입니까?

Table1 
------ 

Id   FromUnit   ToUnit 
-- 
1,   1,     10, 

2,   5, 

3,   11     15 

있습니다.

1) 첫 번째 레코드를 삽입 할 때 첫 번째 레코드이므로 레코드가 없기 때문에 삽입 할 수 있습니다.

2) 1과 10 사이에있는 두 번째 삽입물 5의 경우 삽입을 허용해서는 안됩니다.

3) 세 번째 레코드는 이전 겹치는 숫자가 없기 때문에 삽입 할 수 있습니다.

어떻게 이런 종류의 체크를 C#에서합니까? 아무도이 일을하도록 나를 도울 수 있습니까?

감사

프라 딥

+0

두 가지 질문 A. A. 데이터 (데이터베이스 \ 데이터 구조체)를 어떻게 저장할 것인지 알고 있습니까? B. 값을 삽입 한 후에 ID 번호로 정렬해야합니까? –

+0

테이블 값은 예제로 제공됩니다. 두 번째 레코드를 추가하기 전에 확인해야합니다. – Pradeep

답변

1

사용 BETWEEN

확인 쿼리가

select * from Table1 where 5 between FromUnit AND ToUNit 

반환하는 모든 행을 경우.

당신은 그렇지 않으면 쿼리에서 널 (null)을 처리 할 필요가,

위의 간단한 쿼리를 사용하는

NULL 대신 2, 5의

2,   5,   5 

를 삽입해야합니다.

LINQ는 between 연산자를 지원하지 않지만 두 연산자를 비교할 수 있습니다.

bool HasDuplicate = 
    (
    from t in context.Table1s 
    where t.FromUnit <= 5 
    where t.ToUnit >= 5 
    select t 
    ).Any(); 

하지만 데이터베이스 트리거로 제약 조건을 구현할 수도 있습니다.

+0

C# dataTable.select() 메서드에서 "between"을 구현해야합니다. 우리가 어떻게 할 수 있습니까? 그러나 datatable은 Between을 지원하지 않습니다. – Pradeep

+0

또는 SELECT COUNT (*) ... – James

+0

질문은 원하는 대답이 C#으로되어 있어야한다고 지정합니다. – Amy

관련 문제