2009/11/11(Wed) 07:34:18 編集(投稿者)
■No43449 (がながな さん) に返信
> おしょうさまのレベルが高すぎて読解が難しいです。
> コメント入りで説明していただけないでしょうか?
必要最低限のコードしか書いてないので・・・
これくらいは、理解(読解)して欲しかった・・・
Private Sub SelectData(ByVal likeItem As String)
Dim bRet As Boolean
' DataGridViewのクリア
DataGridView1.DataSource = Nothing
DataGridView1.DataMember = String.Empty
' MySQL への接続
Using MyDB As MySqlConnection = New MySqlConnection(GetDBConnectString())
Try
MyDB.Open()
bRet = True
Catch ex As Exception
bRet = False
End Try
If bRet Then ' 接続が成功した場合
Dim szSQL As StringBuilder
szSQL = New StringBuilder
With szSQL ' SQL文の生成
.Append("select ")
.Append("ID,")
.Append("ItemName, ")
.Append("ItemPrice ")
.Append("from ")
.Append("ItemMaster ")
.Append("where ")
.Append("ItemName like ?item") ' パラメータで変更できるようにしてみた
End With
Using ds As DataSet = New DataSet
Using MyAD As MySqlDataAdapter = New MySqlDataAdapter
Using MyCMD As MySqlCommand = MyDB.CreateCommand
Dim MyParam As MySqlParameter
' 抽出したい情報のパラメータ設定
MyParam = New MySqlParameter("?item", MySql.Data.MySqlClient.MySqlDbType.String)
MyParam.Value = CType(likeItem, Object)
' MySqlCommandの設定
With MyCMD
.CommandType = CommandType.Text
.CommandTimeout = MyDB.ConnectionTimeout
.CommandText = szSQL.ToString
.Parameters.Add(MyParam)
End With
' DataSetにMySqlCommandの結果をMySqlDataAdapter経由で取得
With MyAD
.SelectCommand = MyCMD
.Fill(ds, "ItemMaster")
End With
End Using
' 取得したDataSetの内容をDataGridView1へ表示設定
With DataGridView1
.DataSource = ds
.DataMember = "ItemMaster"
.Refresh()
End With
End Using
End Using
' MySQLへの接続を切断
MyDB.Close()
End If
End Using
End Sub
● SelectData("%TV%")で、実行することになりますが、日本語通る
DB設定にされているので・・・
SQL文を生成しているところを最低限修正が必要です。
あぁ〜もう・・・
With szSQL
.Append("select ")
.Append("ID,")
.Append("商品名,")
.Append("単価 ")
.Append("from ")
.Append("[商品マスタ] ")
.Append("where ")
.Append("商品名 Like ?item")
End With
こうかな・・・
以上。