2011-11-14 12 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

私はあなたがそれがここにあるよりも、問題をより困難にするために、あなたの道を行く「かなり」確信しているが、私は確かに言うことはできません私はこれが何をしているか完全にはわからないからです。

1)DTやDFのどちらかが

if文最初乗り越えるために空にすることはできませ必要があります:

しかし、ここではあなたのタイプの重複エラーラインに到達するために満たす必要がある条件であります2)IsSelectionValid()がfalseを返すか、DTまたはDFが無効なDateTimeである必要があります。それらのものの

いずれも複製を構成していません。

は私が私がここで見るものを説明してみましょう:

私が最初DT、DFと呼ばれる変数を参照してください。私はこれらが日付であることを見ることができますが、それは私がそれらについて知っているすべてです。私はDTとDFよりはるかに少ないと理解する 'タイプ'を参照してください。 Type.Lengthの反復回数のループを行っているのが分かります...しかし、Typeが何であるかという手がかりがなければ、これはどういう意味ですか?

あなたはどのようなものを説明するコメントがあったら、私はあなたを助けることができる「かもしれない」ですが、ここでは何が起こっているのかを知るための十分な情報が本当にただそこではありません。

重複をデータベースに追加しないようにする方法を知りたい場合は、データベース内の列に制約またはインデックスを追加して、挿入しようとすると例外が発生するようにすることをおすすめしますそのように重複して対処してください。あるいは、あなたのinsertステートメントでそれを説明してください。

+0

私は今複製を引き起こしていることを知っており、これを取り除いています。私はそれに応じて自分の投稿を更新します。私が今しようとしているのは、自分のコードが重複をチェックして、これらをデータベースにポストしないようにすることです。 – kellehbeans

+1

あなたのコードは意味をなさない。あなたは変数tをインクリメントするループを持っていますが、tはあなたのループで使われることはありません...毎回同じことです。 第2に、データをデータベースに挿入するコードはありません。既にdbテーブルに何が入っているのかわからないときに、ここに欺瞞があるかどうかを知ることができますか?そのチェックはSQLクエリの一部でなければなりません。あるいは、どのようなフレームワークからでもdbのインタフェースに使用するコマンドの一部ですか? –

+0

それは私のデータベースに追加します。何か簡単な場合、誰かが何かを何度も追加していないことを確認するループを作成するにはどうすればいいですか?これより多くのコードがありますが、ループ部分を貼り付けたのは、これが私が立ち往生していた部分だったからです。 – kellehbeans

関連する問題