申し訳ありません。
二重投稿になりましたもう一つの同タイトル質問はスルーして下さい。
GridViewを使用しているデータで重複禁止の項目があります。しかし、主キー項目ではありません。
Eval を使用して表示しているデータですが、そもそも重複入力禁止にできたら重複チェックも必要ありませんが可能でしょうか?
処理として、入力されたデータをDB更新したいのですが重複禁止の項目の重複データをチェックし、且つ何行目と何行目が重複しているのか行数を示さなければなりません。
重複入力禁止が可能でない場合、読み取る過程でチェックしなければなりませんが、効率のいいロジックを組めません。。。
Excelデータとかでなら一旦昇順にして……など考えてできたのですが。
項目は A B C とし、重複禁止項目はBです。
エラーになる仕様は以下の通り。
- 全て空白の行は無視するが、それ以外で一つでも空白があればエラー
- Bのデータが他の行と重複していたらエラー
エラーを見つけた段階でエラー終了ではなく、全行チェックしてエラー箇所を全行ピックアップしなければなりません。
現在出来ているおおまかな処理の流れ的には以下の様な感じです。
実際のコードをコピペしているわけじゃないのでスペルミス等はスルーして下さい。
VB.NET
1For li = 0 to レコード数 2 '全項目空白の行は無視 3 If A="" AND B="" AND C="" Then 4 Continue For 5 End if 6 7 'どれか一つでも空白だったらエラー 8 If A="" then 9 blnErrFlg = true 10 End if 11 If B="" then 12 blnErrFlg = true 13 End if 14 If C="" then 15 blnErrFlg = true 16 End if 17 18 if blnErrFlg then 19 'エラー行取得 20 strErrRow = strErrRow & "," & i & "行目" 21End if 22 23 24Next 25 26if blnErrFlg then 27 '例外スローで Mid(strErrRow,2)を表示させる。(X行目,X行目,X行目) 28End if 29 30'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 31' ここに項目Bの重複チェック処理を組みたい 32'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ 33 34For li = 0 to レコード数 35 'A,B,Cの項目のデータを取得 36 'Update処理 37Next
アドバイス等宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。