- PR -

演算子が間違っている??「ステートメントの終わりを」

投稿者投稿内容
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 15:26
ADO.NETで、AccessDBのGruopKaihiテーブルの"未納者"フィールドの数値によって(0か0以外か)
分岐を作りたいので、以下の記述をしますが、
最初の行に「ステートメントの終わりを指定してください。」というエラーが出ます。
どう書けばいいのでしょうか?どなたかご教授くださいませ。


コード:
If drGruopKaihi("未納者") !=0  Then 'コメント

TextBox1.Text = drGruopKaihi("Name") + "さん、会費未納者が"+drGruopKaihi("未納者")+"人います。"
Else 'コメント
TextBox1.Text = drGruopKaihi("Name") + "さんに会費未納者はいらっしゃいません。"
End If




(言語はVB.NETです)

[ メッセージ編集済み 編集者: あなご 編集日時 2005-12-19 15:28 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-12-19 15:34
諸農です。

VB.NETで比較演算するときのリファレンスを見てみたらどうでしょうか?
!=0 ではなく<>0 ではないですか?

「<> 演算子は、2 つのオペランドが等しくないかどうかをテストします。」

引用:

コード:
If drGruopKaihi("未納者") !=0  Then 'コメント


(言語はVB.NETです)


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 15:57
Jubeiさん、ありがとうございます。

引用:
!=0 ではなく<>0 ではないですか?


なるほど、記憶がぐちゃまぜになっておりました。

と思って書き換えたら・・・
データベースに1以上が入っているのに「未納者はいません」の表示が出、
データベースに0が入っているときはエラーで「入力文字列の形式が正しくありません。」と出るようになってしまいました。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-19 15:58
言語仕様的なものも、このように検索すると良いと思います。

  Google 検索結果

# 私も VB を初めてやった頃は Not と <> に慣れるまで苦労しました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-19 16:01
引用:

あなごさんの書き込み (2005-12-19 15:57) より:

データベースに1以上が入っているのに「未納者はいません」の表示が出、
データベースに0が入っているときはエラーで「入力文字列の形式が正しくありません。」と出るようになってしまいました。。


そういう場合は、左辺値を確認します。(もちろん "型" も)
また、明示的に型を合わせるようにすれば防げます。

# エラーではなく例外ですよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-12-19 16:06
とりあえずソースコードの先頭に

Option Strict On

を追加してみてはいかがでしょう
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 16:14
みなさんありがとうございます。

>じゃんぬねっとさん
コード:
Dim drGruopKaihi As IDataReader = FindByKaihi(Int32.Parse(txtID.Text))


の変数宣言をやっています。
他に何を変数宣言すれば良いのでしょうか(*_*)?
正直データベースをいじくるのは初めてなので
それがらみの変数宣言がいまいちまだぴんときません、
あと、仰るとおり「例外」でした(^^;

>かるあさん
引用:
Option Strict On
を追加してみてはいかがでしょう


追加したら・・・真っ白画面になってしまいます。


[ メッセージ編集済み 編集者: あなご 編集日時 2005-12-19 16:15 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-12-19 16:35
未納者に数字以外の何かが入っていたりしませんか?(NULLとか)
例外が出ているのはこの部分ではないですか?
引用:

Dim drGruopKaihi As IDataReader = FindByKaihi(Int32.Parse(txtID.Text))




格納するときだけではなく、比べるときもキャストしましょう。
コード:
If drGruopKaihi("未納者") !=0  Then 'コメント


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