- PR -

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

投稿者投稿内容
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-12-19 16:36
真っ白になる原因は何だろう…
すいません、こっちはわからないです…
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-19 16:42
引用:

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

他に何を変数宣言すれば良いのでしょうか(*_*)?


えっと、私は変数を宣言せよとは言っておりませんよ。

引用:

正直データベースをいじくるのは初めてなので
それがらみの変数宣言がいまいちまだぴんときません、


変数ではなく、型の概念はお持ちでしょう?
データベース以前にほとんどの言語にありますし。

引用:

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


追加した .vb ファイルの中のデザイナに関する部分で、
暗黙変換しているようなクラスがあるのかなぁ...
普通は大丈夫なハズですが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 16:57
ありがとうございます。

>かるあさん
Nullなど、数字以外のものは入っておりません。

ちなみにスタックトレースに、
引用:

[FormatException: 入力文字列の形式が正しくありません。]
Microsoft.VisualBasic.CompilerServices.DoubleType.Parse(String Value, NumberFormatInfo NumberFormat) +186
Microsoft.VisualBasic.CompilerServices.DoubleType.FromString(String Value, NumberFormatInfo NumberFormat) +84

[InvalidCastException: 文字列 "○○さん、会費未納者が" から型 'Double' へのキャストが有効ではありません。]
Microsoft.VisualBasic.CompilerServices.DoubleType.FromString(String Value, NumberFormatInfo NumberFormat) +173
Microsoft.VisualBasic.CompilerServices.ObjectType.AddString(IConvertible conv1, TypeCode tc1, IConvertible conv2, TypeCode tc2) +36
Microsoft.VisualBasic.CompilerServices.ObjectType.AddObj(Object o1, Object o2) +447
ASP.GruopKaihi_aspx.Button1_Click(Object sender, EventArgs e) +535
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292

と出ております。

以上は
引用:
Dim drGruopKaihi As IDataReader = FindByKaihi(Int32.Parse(txtID.Text))

ここに例外が出ているということなのでしょうか?
あと、このようにdrGruopKaihiの型を宣言していますが、「型Doubleへのキャストが有効ではありません」と出ているということは、どうすればよいのでしょうか(*_*)?

drGruopKaihiは
>じゃんぬねっとさん
あ、「変数」と「型」を見間違えました(^^;

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-19 17:02
引用:

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

[InvalidCastException: 文字列 "○○さん、会費未納者が" から型 'Double' へのキャストが有効ではありません。]


System.Double.Parse("○○さん、会費未納者が") とやっているのと同じですよね。
先ほどから "型" についてうるさく言っているのはこういうことも含みます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2005-12-19 17:03
引用:


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

ADO.NETで、AccessDBのGruopKaihiテーブルの"未納者"フィールドの数値によって(0か0以外か)
分岐を作りたいので、以下の記述をしますが、

最初の行に「ステートメントの終わりを指定してください。」というエラーが出ます。
どう書けばいいのでしょうか?どなたかご教授くださいませ。



ですが、変数の型を明示しながら書くのがわかりやすいと思います。

コード:

dim 会費未納者数 as integer = ctype(drGruopKaihi("未納者"), integer)
dim 氏名 as string = ctype(drGruopKaihi("Name"), string)
dim メッセージ as string = ""
If (会費未納者数 = 0) then
  メッセージ = 氏名 & "さんに会費未納者はいらっしゃいません。"
else
  メッセージ = 氏名 & "さん、会費未納者が" & cstr(会費未納者数) & "人います。"
End If
TextBox1.Text = 氏名 & "さん" & メッセージ



こんな感じで書いてみると、型を意識して書けますよ。
ちなみに、上記のコードの動作は保障できないこととさせて下さい。
(人のコードをデバッグするのは嫌なので)
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 17:14
>じゃんぬねっとさん、R・田中一郎さん
うわぁ・・・意外に難しいんですね(*_*)
Parseとかctypeとか初めて見ました(*_*)
やっぱり超簡単なプログラミングしかしたことがなかったんだなぁ・・。


引用:
dim 会費未納者数 as integer = ctype(drGruopKaihi("未納者"), integer)
dim 氏名 as string = ctype(drGruopKaihi("Name"), string)
dim メッセージ as string = ""
If (会費未納者数 = 0) then
メッセージ = 氏名 & "さんに会費未納者はいらっしゃいません。"
else
メッセージ = 氏名 & "さん、会費未納者が" & cstr(会費未納者数) & "人います。"
End If
TextBox1.Text = 氏名 & "さん" & メッセージ



ここに出てくる、「氏名」とか「会費未納者数」というのは、
データベース・テーブルのフィールド名・・ですか?
フィールド名について言及(型明示)しながら書くということでしょうか。

↑すいません、なんか変なこと書いていました(>_<)
試してみます!!

[ メッセージ編集済み 編集者: あなご 編集日時 2005-12-19 17:17 ]

[ メッセージ編集済み 編集者: あなご 編集日時 2005-12-19 17:18 ]
あなご
会議室デビュー日: 2005/12/19
投稿数: 8
投稿日時: 2005-12-19 17:32
もう少しで上手く行きそうなのですが・・・

引用:
[InvalidOperationException: 行および列にデータが存在しません。]
System.Data.OleDb.OleDbDataReader.DoValueCheck(Int32 ordinal) +46
System.Data.OleDb.OleDbDataReader.GetValue(Int32 ordinal) +16
System.Data.OleDb.OleDbDataReader.get_Item(String name) +20
ASP.clubs1020_aspx.Button1_Click(Object sender, EventArgs e) +203
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +83
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292



と出ます・・・。
データが存在しないってどういうことでしょうか・・・(*_*)
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-12-19 18:01
諸農です。

引用:

あと、このようにdrGruopKaihiの型を宣言していますが、「型Doubleへのキャストが有効ではありません」と出ているということは、どうすればよいのでしょうか(*_*)?



Double型に変換できるものがTextBoxに入力されているかどうかを確認します。

引用:

と出ます・・・。
データが存在しないってどういうことでしょうか・・・(*_*)



何をしているのかよく分からないのですけど、
メッセージからすると、データが無いんでしょうね。
違うのですか?確認していないのですか?
とりあえず、読み込めているのかどうかを確認してください。


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

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/

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