DOBON.NET DOBON.NETプログラミング掲示板過去ログ

変数で条件検索したい

環境/言語:[Framework1.1 VB.NET Windows2000]
分類:[.NET]

オラクルDBから既存のデータを、TextBox1の条件を付けて検索させたいのですが、DataSetを設定する際に生成される「Windows フォーム デザイナで生成されたコード」の他に変数を扱うコードを記載しましたが、うまく検索されません。「変数の名前/数が無効です」と怒られます。変数無しの直接SELECT文に条件文字列を記入すると問題無く検索されます。何が問題か分らないため困っています。
何方か宜しくお願いします。

" Windows フォーム デザイナで生成されたコード "



'DataSet11
Me.DataSet11.DataSetName = "DataSet1"
Me.DataSet11.Locale = New System.Globalization.CultureInfo("ja-JP")
'
'OracleDataAdapter1
Me.OracleDataAdapter1.SelectCommand = Me.OracleSelectCommand1
Me.OracleDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "ABC_DATABASE", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("A", "A"), New System.Data.Common.DataColumnMapping("B", "B"), New System.Data.Common.DataColumnMapping("C", "C"),New})})

'OracleConnection1
Me.OracleConnection1.ConnectionString = "user id=test;data source=abc;password=xyz"

'OracleSelectCommand1
Me.OracleSelectCommand1.CommandText = "SELECT A, B, C, FROM ABC_DATABASE WHERE (A LIKE ':A')"
Me.OracleSelectCommand1.Connection = Me.OracleConnection1
'ここまでが生成コード

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'以下は変数を扱うコード

    Me.OracleSelectCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":A", System.Data.OracleClient.OracleType.VarChar, 50))
Me.OracleSelectCommand1.Parameters(":A").Value = Me.TextBox1.Text & "%"
'DataGridへの表示
OracleDataAdapter1.Fill(DataSet11)


End Sub
以上
よく調べずに言ってますが、変数にコロンって使えましたっけ?
あと、ボタンのクリックイベントでパラーメータをAddしているので、二回目からのボタンクリックでは問題が起きると思います。
trapemiyaさんレスありがとうございます。
「:」はINSERT文を自動生成した際に使われていましたので、
大丈夫かと思いSELECT文でも使ってみました。
もちろん「@」を使いましたがダメでした。
■No15388に返信(普通の会社員さんの記事)

http://www.atmarkit.co.jp/fdb/rensai/odpdotnet01/odpdotnet04.html
が参考になると思いますよ。


実験もしておらず感じ的な発想でですが、
「':A'」ってシングルクォートが邪魔しているんじゃないか、
Like でやるのであれば :A% とかじゃないのかなぁ・・・とも思います。
#パラメータの内容ってそのまま"値"になるんじゃなかったでしたっけ?
夏椰さんレスありがとうございます。
すみません、掲示板への書き間違いで「":A"」でした。
仮に「:A」だけですとアンダーラインが入ってしまいます。
INSERT文ではうまく行ったのですが、SELECT文ですとうまく行きませんでした。
■No15390に返信(普通の会社員さんの記事)
> 夏椰さんレスありがとうございます。
> すみません、掲示板への書き間違いで「":A"」でした。
> 仮に「:A」だけですとアンダーラインが入ってしまいます。
> INSERT文ではうまく行ったのですが、SELECT文ですとうまく行きませんでした。
>

夏椰さん、もし訳ありませんでした。
SELECT文の「':A'」でしたね。
「LIKE :A」にしたら検索されました。
有難うございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板