- PR -

エントリー時の重複エラーチェック方法について

1
投稿者投稿内容
なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2005-09-21 18:14
いつもお世話になっています。

現在、C#でWindowsアプリを作成中です。
FlexGrid内で各項目を入力させた後、それぞれのデータチェック(数値チェックなど)を
行い、各行で重複入力が無いかをチェックしようとしています。

各行で重複チェックを行うための方法として考えたのが
まずDataSetにテーブルを作成して、そこに追加を行う。
その際、DataSetのテーブルにキーを設定しておき、追加えらーが発生した場合
にtyr〜catchでエラーを取得して判断する方法です。

しかし、エラーメッセージは取得できてもエラーコードが取得できないので
重複エラーなのか、そのほかのエラーなのかを判断するのは文字(エラー内容)に
なってしまいます。

そこで、重複エラーのチェック方法として
1.重複エラーであるかを判断する方法(コードの取得?)
2.他に重複エラーをチェックする方法
でよい案がありませんか?

何かご存知の方、教えて頂けないでしょうか?
よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-21 18:19
引用:

なりこさんの書き込み (2005-09-21 18:14) より:

2.他に重複エラーをチェックする方法


たとえば、別の List なオブジェクトで同時に管理して、
ソートをした上で重複エラーチェックしちゃダメなんですか?


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-09-21 19:13
Hashtableなど使ってみてはいかがでしょう?

コード:
Hashtable hash = new Hashtable();
//ループ開始
if(hash[チェックしたい値] != null) 重複
hash[チェックしたい値] = true //代入する値は何でも良い
//ループ終了

なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2005-09-21 19:38
引用:

ぼのぼのさんの書き込み (2005-09-21 19:13) より:
Hashtableなど使ってみてはいかがでしょう?

コード:
Hashtable hash = new Hashtable();
//ループ開始
if(hash[チェックしたい値] != null) 重複
hash[チェックしたい値] = true //代入する値は何でも良い
//ループ終了





なるほど、そんな方法もあるんですね。
Hashtableは複数キーの設定はできないんですよね?
ユニークキーを3つとした場合などは使用できないんでしょうか。。
それと、DataSetにデータを追加した後、そのままテーブルに
更新させようと思っています。

でも、Hashtableなんて知らなかったので勉強になりました!
ありがとうございます。

なりこ
ベテラン
会議室デビュー日: 2005/06/09
投稿数: 61
投稿日時: 2005-09-21 19:39
引用:

じゃんぬねっとさんの書き込み (2005-09-21 18:19) より:
引用:

なりこさんの書き込み (2005-09-21 18:14) より:

2.他に重複エラーをチェックする方法


たとえば、別の List なオブジェクトで同時に管理して、
ソートをした上で重複エラーチェックしちゃダメなんですか?






そうですね。。やっぱりソートでチェックでしょうか。。
ご意見ありがとうございます!
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-09-21 19:47
引用:

なりこさんの書き込み (2005-09-21 19:38) より:
でも、Hashtableなんて知らなかったので勉強になりました!


まぁHashtableの本来の用途とは少し異なるんですが

引用:

ユニークキーを3つとした場合などは使用できないんでしょうか。。


データ中に絶対含まれない文字があるなら、それを使って連結しちゃえば良いんですよ。
ファイルのフルパスを考えてもらえれば分かりやすいかと。
改行や全角文字まで含めて、あらゆる文字が入り得る可能性があるなら使えませんが…
1

スキルアップ/キャリアアップ(JOB@IT)