tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル演算子&が定義されていませんとなってしまいます。
記事No3983
投稿日: 2006/07/14(Fri) 10:54
投稿者サン
VB.NET でシステムを構築しています。
DBの接続は何度もしているのですが、今回、どうしてもわからないエラーが
記述の最中に出てしまいます。

1行目のUpdateから下波線が表示され、カーソルを当てると
演算子&が定義されていないよいうメッセージです。      
今までと同じように記述しているのですが、何がおかしいのでしょうか?

お分かりになる方がいらっしゃいましたらご教授願えませんでしょうか。

  Olecmd = New OleDb.OleDbCommand("update student_tbl set " & _
        "st_gakunen = '" & St_Gakunen.Text & "'," & _
        "st_class = '" & ST_Class.Text & "'," & _
        "ST_No = " & ST_No ,olecn)

[ツリー表示へ]
タイトルRe: 演算子&が定義されていませんとなってしまいます。
記事No3984
投稿日: 2006/07/14(Fri) 11:56
投稿者魔界の仮面弁士
VB2005 だとしたら、System.Data.OleDb.OleDbConnectionStringBuilder を使うと便利ですよ。

> 今までと同じように記述しているのですが、何がおかしいのでしょうか?
大きな構文エラーは無さそうですけれどね。

実行時にエラーになるのではなく、コードの編集時に下線が出るだけなのであれば、
コードの解析が失敗しているだけかも知れませんので、ビルドしなおせば直るかも?


>   Olecmd = New OleDb.OleDbCommand("update student_tbl set " & _
>         "st_gakunen = '" & St_Gakunen.Text & "'," & _
>         "st_class = '" & ST_Class.Text & "'," & _
>         "ST_No = " & ST_No ,olecn)

SQL インジェクションの問題がありますので、それぞれの値は、
OleDbParameter 経由で渡した方が良いでしょう。
(たとえば、St_Gakunen.Text 内に 「'」の文字が含まれていた場合など)


それと、ST_No の型は何ですか? もしも String や Char 以外の型であれば、
   "ST_No = " & ST_No
ではなく、
   "ST_No = " & ST_No.ToString()
もしくは
   "ST_No = " & CStr(ST_No)
あるいは
   String.Format("ST_No = {0}", ST_No)
などにする必要があると思います。(Option Strict On モードでは)

[ツリー表示へ]
タイトルRe^2: 演算子&が定義されていませんとなってしまいます。
記事No3985
投稿日: 2006/07/14(Fri) 14:52
投稿者サン
ご回答有難うございます。

VB.NET2003を使っています。

ST_No をご指摘のようにCstr(St_no)にして
ビルドをしなおして見ましたが、やはりビルドエラーで、
「error BC30452: 演算子 '&' は、型 'String' および 'System.Windows.Forms.TextBox' に対し
て定
義されていません。」というメッセージが出てしまいます。

色々調べているのですが、どうしてもわかりません。

[ツリー表示へ]
タイトルRe^3: 演算子&が定義されていませんとなってしまいます。
記事No3986
投稿日: 2006/07/14(Fri) 17:32
投稿者魔界の仮面弁士
> 型 'String' および 'System.Windows.Forms.TextBox' に対して定義されていません。

あれま。ST_No って、テキストボックスだったんですか。

だったら、
 "ST_No = " & ST_No
ではなく、
 "ST_No = " & ST_No.Text
でしょう。

[ツリー表示へ]
タイトルRe^4: 演算子&が定義されていませんとなってしまいます。
記事No3991
投稿日: 2006/07/16(Sun) 10:30
投稿者サン
申し訳ありません。そして有難うございます。

ズバリご指摘の通りでした。

違う方向ばかり考えていて、見逃してしまいました。

今、とても恥ずかしく思っています。

有難うございました。

[ツリー表示へ]