- - PR -
該当無しの場合
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-11-04 15:33
visual studio.netを使用しています。職員の管理システムを作っているのですが、だいたいいい所までは開発する事ができました。しかし、あと一歩のところでつまずいています。
内容は職員番号で検索をかけ、その該当者を出力するというものなのですが、該当がない場合の処理ができません。該当者がいない場合は「該当がありません」などの表示をしたいのですが、エラーになってしまいます。エラーは「インデックス 0 は負の値です。また、行カウントの合計よりも小さい値です」です。どうすればうまくできるのでしょうか? | ||||||||||||
|
投稿日時: 2004-11-04 15:49
スルーされそうな内容だと思われるので、とりあえず回答ではなく指摘。
この内容で自分の望む回答が得られると思いますか? 質問する際には最低限必要な情報は提示しましょうよ。 というわけで、こちらを一読されることをお勧め致します。 http://www.hyuki.com/writing/techask.html 以上。 _________________ まゆりん @ わんくま同盟 Blog る。 | ||||||||||||
|
投稿日時: 2004-11-04 16:27
すいません。もう一度改めて・・・・
私は今までホスト系(COBOL85)を中心に開発してきてWEBに挑戦してみようと思い最近始めたところです。そこで・・・ SQLサーバーを使用しVisual Studio.NET(VB.net)で職員管理のシステムを開発中です。 検索画面で職員番号を入力し検索ボタンをクリックするとその職員の情報が表示されるというシステムを作りました。 サーバー上のテーブルに存在する職員番号を入力した場合、問題なく表示されます。 しかしながら、存在しない職員番号を入力した場合にエラーになってしまいます。 私の予定では、空のデータの画面が表示されるはずだったのですが・・・ できれば、該当者がいない場合には「該当なし」とメッセージを表示させたいのですが、その前にエラーを回避しないとダメですね。 表示されるエラーは「アプリケーションでサーバー エラーが発生しました。インデックス 0 は負の値です。また、行カウントの合計よりも小さい値です。」です。 エラーを見た限りでは、インデックスが負の場合の処理が必要だと思うのですが? | ||||||||||||
|
投稿日時: 2004-11-04 16:37
ステップ実行をして、エラーが発生したコードを特定してみてください。
そのコードがわかれば、どのように書き換えればよいかを判断できるかもしれません。 データベースからどのようにデータを拾ってきましたか? 0レコードかどうかだけを知ることもできますが、試しましたか? _________________ たつごろー codeseek こみゅぷらす | ||||||||||||
|
投稿日時: 2004-11-04 17:16
どもです。がると申します。
んっと。
という状態で検索をして
との事なので。 ここだけを見ている限りでは ・SQL文がおかしい ・その後のfetch(かな? SQL Server固有の名詞が…)がおかしい ・またはSELECTできた数のカウント方法がおかしい あたりではないか、と。 もうちょい細かくいきますと。 普通、おっつさんがおっしゃっているようなシステムを組む場合、
多分おおまかにはこーゆーコードを書いていると思います。 こういうロジックの場合、上記の通り、SQLかその後の数の カウント方法で失敗することが多いように思います。 とりあえず ・イメージしているSQL文 と ・デバッグ表示で実際に渡されているSQL文を表示 とで比較してみてはいかがでしょうか? 或いはそれでも不明の場合、差し支えない程度にSQL文を のっけていただけるともう少し見えるかも…です。 | ||||||||||||
|
投稿日時: 2004-11-04 17:30
おっつさんがどのように実装されてるかわからないので完全に想像ですが
検索結果をDataSetか配列などで受け取って、データが必ず1件あると決め打ちして DataTable.Rowsの1行目や配列の最初の要素をバインドしてるとか? | ||||||||||||
|
投稿日時: 2004-11-08 18:22
日にちがあいてしまいまして・・・体調不良だったもので!
sodさんの言われている通りのやり方です。 検索はSQLのストアドでしています。しかしがるがるさんの言われているような、いない場合のIF文はありません。 ただのselect文だけです。その辺が原因ぽいですね | ||||||||||||
|
投稿日時: 2004-11-08 19:41
if (DataTable.Rows.Count == 0)
{ // // 該当なしの処理 // } のような感じでイイのではないでしょうか。 ちゃんとデバッグでおってますか? |