2011-11-14 7 views
2

프로젝트를 진행 중이고 벽돌 벽에 충돌했습니다. 내 코드는 데이터베이스에 유형이있는 날짜를 추가하지만 코드 내에 이미 비슷한 항목이 있으면 오류를 만들어야합니다. 그러나, 나는 반복문을 검사하기 위해 루프를 만들 수 없으며 대신에 중복을 추가한다! 나는 아주 잘 돌아 가지 않아서 나는 이것에 조금 붙어있다. 중복 된 항목을 확인하고 너무 많은 항목을 만들지 못하게하면 도움이됩니다! 이 텍스트 영역 내에서 코드가 변경되어 정확히 동일한 변수 이름이 아닙니다. 여기 C#/SQL 중복 항목 확인

내 코드입니다 : -

if (DT != null && DT.Length > 0 || DF != null && DF.Length > 0) 
      { 
       for (int t = 0; t < Type.Length; t++) 
       { 
        DateTime checkDate; 

        if (Type.IsSelectionValid(8, out typeError) && DateTime.TryParse(DF, out typeError) && DateTime.TryParse(DT, out checkDate)) 
        { 
          TypeValid = true; 
          error.Error = false; 
         } 
         else 
         { 
          error.Errors = "Type-Invalid"; 
          absenceTypeValid = false; 
          break; 
         } 
        } 
        else 
        { 
         error.Errors = "Type-Duplicate"; 
         TypeValid = false; 
         break; 
        } 
       } 
      } 
+0

당신이 찾고있는 것입니다 [SQL Server의 테이블에서 중복 행을 제거하는 방법] (http://support.microsoft.com/kb/139444) – Vamsi

+0

아니요, 그렇지 않습니다. 왜 내 루프가 중복을 만들고 있는지 이해할 수 없으며 사용자가 중복을 추가하지 못하도록해야합니다. 그래도 도움을 주셔서 감사합니다. – kellehbeans

+0

게시 한 코드에 중복 체크가 보이지 않습니다. 중복 체크 (작동하지 않는) 코드가있는 곳에 질문을 추가하거나 설명을 추가 할 수 있습니까? – Vamsi

답변

2

I 해요 당신이 여기보다 문제가 더 어렵게 만들기 위해 비켜 가고있다, 그러나 나는 확실히 말할 수 없다 '상당히'확인 나는 이것이 무엇을하고 있는지 완전히 모르기 때문에.

1) DT 또는 DF 중 하나가

if 문 처음 뚫을 비워 둘 수 없습니다 필요 :

그러나 여기 당신의 유형 - 중복 오류 라인에 도착하기 위해 충족해야하는 조건입니다 2) IsSelectionValid()가 false를 반환해야하거나 DT 또는 DF가 잘못된 DateTime이어야합니다.

그 중 어떤 것도 중복을 구성하지 않습니다.

은 제가 여기에 무엇을보고 설명하려고하자 : 내가 처음 DT, DF라는 변수를 참조

. 나는 이것들이 날짜 들인 것을 볼 수있다. 그러나 그것은 내가 그들에 관해 아는 전부이다. 나는 DT와 DF보다 훨씬 덜 이해하는 'Type'을 본다. Type.Length 반복 수에 대한 루프를 수행하는 것을 볼 수 ... 형식이 어떤 단서가없는 경우이 의미는 내게 무슨 뜻입니까?

'내가 할 수있는 일'을 설명하는 의견이 있지만 여기에서 무슨 일이 일어나고 있는지 알 수있는 정보가 충분하지 않습니다.

데이터베이스에 복제본을 추가하지 않는 방법을 알고 싶다면 데이터베이스의 열에 제약 조건이나 인덱스를 추가 한 다음 삽입하려고하면 예외가 발생할 수 있습니다. 그런 식으로 복제하고 처리하십시오. 또는 insert 문에서이를 고려하십시오.

+0

나는 지금 복제물의 원인을 안다. 나는 이것을 없앤다. 그에 따라 내 게시물을 업데이트 할 것입니다. 지금 내가하려는 것은 내 코드가 중복을 검사하고 이들을 데이터베이스에 게시하지 않도록하는 것입니다. – kellehbeans

+1

코드가 의미가 없습니다. 변수 t를 증가시키는 루프가 있지만 루프에서는 절대로 사용되지 않습니다. 매번 같은 일을합니다. 둘째, 데이터베이스에 데이터를 삽입하는 코드가 표시되지 않습니다.이미 db 테이블에있는 것을 볼 수 없을 때 여기에 속은 사람이 있는지 어떻게 알 수 있습니까? 이 검사는 SQL 쿼리의 일부이거나 db의 인터페이스로 사용하는 프레임 워크의 일부입니다. –

+0

내 데이터베이스에 더 쉽게 추가 할 수 있습니다. 누군가가 두 번 무언가를 추가하지 않는다는 것을 확인하는 루프를 만들려면 어떻게해야합니까? 이 코드는 훨씬 더 많지만 루프 부분을 넣었으므로이 부분이 내가 붙어있는 부분이었습니다. – kellehbeans