2011-11-09 35 views
0

私は以下のような表1と呼ばれるテーブルを持って、重複数を確認するにはどうすればよいですか?

ここ
Table1 
------ 

Id   FromUnit   ToUnit 
-- 
1,   1,     10, 

2,   5, 

3,   11     15 

私は、上記の表から重複数をチェックする必要があります。

1)私は最初のレコードを挿入していますが、これは最初のレコードであるため、レコードを持たないため挿入できます。

2)1と10の間にある2番目のインサート5については、そのインサートを許可しないでください。

3)3番目のレコードは、以前の重複する数字がないため挿入できます。

この種のチェックはどのようにC#で行うのですか?誰でもこのことを手伝ってもらえますか?

おかげ

プラディープ

+0

A.データ(データベース\データ構造体)をどのように保存するのか、2つの質問がありますか? B.値を挿入した後、ID番号で注文する必要がありますか? –

+0

テーブル値が例として示されています。私は2番目のレコードを追加する前に確認する必要があります。 – Pradeep

答えて

1

使用BETWEENクエリ

select * from Table1 where 5 between FromUnit AND ToUNit 

が行を返す場合

チェック。

あなたは、そうでない場合は、クエリでNULL値を処理する必要があり、上記の単純なクエリを使用する代わりに 2、5、NULL

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

関連する問題