Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SQLのWHERE句で LIKE と * のあいまい検索 の書き方
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=19669#CommentId54411
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
べんきょうちゅう
 (社会人)
投稿日時
2014/9/28 23:31:59
ナシゴレンさん るきおさん ご返事有難うございます。
なるほど = と LIKE は 同じ役割だったんですね。思い込みで = LIKE と繋げてしまっていました。
これで ご指摘のとおり 3は解決 。
あと * の件は 掛け算をしようとしていたのですね。 それで 「---'Double' への変換はーーー」のエラーが出ていたわけですか?
文字列の話なのに なぜ Double なの??? と思っていました。エラーの文面をもっと深く読み取るべきでした。
と いっても 読み解ける自信はありませんが。
「1つのSQL文は1つの文字列にしてください。」
この意味合いも言葉としては判るような感じですが いざ * と パラメータを埋め込んで書こうと思うと なかなか思うように行きません。
おっしゃるとおり アクセス2000を使っております。アクセスではクエリーで割と楽に出来ましたが、VBとSQLではつまずいています。
* を単なる文字ではなく かつ 掛け算記号でもなく 演算子? として 一つの文字列にする。
というような感じでよいのか? と思っています。
いま あれこれ試していますが 解決にはいたっていません。
ナシゴレンさん るきおさん のご返事をよく読んで もう少しあがいてみます。
下にコードを上げておきます
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\Tag.mdb")
Dim Cm As OleDbCommand = Cn.CreateCommand
Adapter = New OleDbDataAdapter(Cm)
Dim Builder As New OleDbCommandBuilder(Adapter)
Dim Table As New DataTable
’<<<<<<<<<<<
' Cm.CommandText = ("SELECT フォルダ FROM T3 WHERE フォルダ LIKE " '" & "*" & @Code & "*" & "'"")
’LIKE の後ろに )が無いとオコラレル
' 参考 "'" & "%" & txtUser.Text & "%" & "'" SQLサーバー
'参考 Like "*" & [Forms]![F1]![T1] & "*" アクセス
'Cm.CommandText = ("SELECT * FROM T3 WHERE フォルダ LIKE " * " & @Code & " * " ")
'Cm.CommandText = ("SELECT * FROM T3 WHERE フォルダ LIKE '*@Code*'")
'Cm.CommandText = ("SELECT * FROM T3 WHERE フォルダ LIKE 'カフェ'") ’OK
'Cm.CommandText = ("SELECT * FROM T3 WHERE フォルダ LIKE @Code") ’OK
'Cm.CommandText = ("SELECT * FROM T3 WHERE フォルダ LIKE ' * ' & 'カフェ' & ' * '")
'<<<<<<<<<<<<<<<<< この部分でいろいろあがいています
Dim sparam As OleDb.OleDbParameter
sparam = New OleDb.OleDbParameter("@Code", SqlDbType.TEXT)
sparam.Value = Me.TextBox1.Text
Cm.Parameters.Clear()
Cm.Parameters.Add(sparam)
Adapter.Fill(Table)
DataGridView1.DataSource = Table
Table.Dispose()
End Sub