C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: DataGridViewのデータソースの設定に付いて


(過去ログ 74 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■43444 / inTopicNo.1)  DataGridViewのデータソースの設定に付いて
  
□投稿者/ がながな (14回)-(2009/11/10(Tue) 18:06:38)

分類:[.NET 全般] 

いつもお世話になります。
DataGridViewの中身のソース設定についてなんですが、select文をソースに設定したいのですが、どのような手順で設定したらいいの苦戦しております。

SQL文は
dim MySQL as string
MySQL = "select ID,商品名,単価 from [商品マスタ] where 商品名 like % テレビ %"
なのですが、このMYSQL変数をデータソースの何処にセットしたらよいのか苦戦しております。

・データグリッドビュー名:GR結果
・データセット名:商品管理システムDataset
・データバインド:商品管理システムBindingSource
・テーブルアダプタ:商品管理システムTableAdapter

とし、商品管理システムBindingSourceのDataMemberプロパティにMYSQLを代入したのですが、上手く行きませんでした。
何か手続きが欠けているのでしょうか?
よろしく御願いいたします。
引用返信 編集キー/
■43445 / inTopicNo.2)  Re[1]: DataGridViewのデータソースの設定に付いて
□投稿者/ オショウ (383回)-(2009/11/10(Tue) 18:43:39)
No43444 (がながな さん) に返信
> いつもお世話になります。
> DataGridViewの中身のソース設定についてなんですが、select文をソースに設定したいのですが、どのような手順で設定したらいいの苦戦しております。

    Private Function GetDBConnectString() As String

        Dim MyCon As MySqlConnectionStringBuilder

        MyCon = New MySqlConnectionStringBuilder

        With MyCon
            .ConnectionProtocol = MySqlConnectionProtocol.Sockets
            .ConnectionTimeout = 10
            .Database = "TEST"
            .PersistSecurityInfo = True
            .Server = "LocalHost"
            .UserID = "hoge"
            .Password = "hogehoge"
        End With

        Return MyCon.ToString

    End Function

    Private Sub SelectData()

        Dim bRet As Boolean

        DataGridView1.DataSource = Nothing
        DataGridView1.DataMember = String.Empty

        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
                    .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("%TV%", Object)

                            With MyCMD
                                .CommandType = CommandType.Text
                                .CommandTimeout = MyDB.ConnectionTimeout
                                .CommandText = szSQL.ToString
                                .Parameters.Add(MyParam)
                            End With

                            With MyAD
                                .SelectCommand = MyCMD
                                .Fill(ds, "ItemMaster")
                            End With
                        End Using

                        With DataGridView1
                            .DataSource = ds
                            .DataMember = "ItemMaster"
                            .Refresh()
                        End With

                    End Using

                End Using

                MyDB.Close()
            End If
        End Using

    End Sub

※ 日本語通る設定にしてないので・・・
  こんな感じで如何でしょう?

以上。

引用返信 編集キー/
■43449 / inTopicNo.3)  Re[2]: DataGridViewのデータソースの設定に付いて
□投稿者/ がながな (15回)-(2009/11/10(Tue) 21:14:44)
早速の御返事ありがとうございます。
おしょうさまのレベルが高すぎて読解が難しいです。
コメント入りで説明していただけないでしょうか?
よろしく御願いいたします。
引用返信 編集キー/
■43451 / inTopicNo.4)  Re[3]: DataGridViewのデータソースの設定に付いて
□投稿者/ オショウ (385回)-(2009/11/10(Tue) 21:30:37)
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

  こうかな・・・

以上。

引用返信 編集キー/
■43452 / inTopicNo.5)  Re[4]: DataGridViewのデータソースの設定に付いて
□投稿者/ がながな (16回)-(2009/11/10(Tue) 21:42:22)
度々すいません…。
プログラム5行目の「MySqlConnection」は当方のVisualStudioではオブジェクトがないみたいですが…。「SqlConnection」ではないですか?MySqlConnectionはMYSQLデータベースに接続するためのコマンドですか?
引用返信 編集キー/
■43467 / inTopicNo.6)  Re[5]: DataGridViewのデータソースの設定に付いて
□投稿者/ オショウ (386回)-(2009/11/11(Wed) 07:35:04)
No43452 (がながな さん) に返信
> 度々すいません…。
> プログラム5行目の「MySqlConnection」は当方のVisualStudioではオブジェクトがないみたいですが…。「SqlConnection」ではないですか?MySqlConnectionはMYSQLデータベースに接続するためのコマンドですか?

  前提条件が書いてなかったので・・・

  当方、
  MySQL 5.1
  Connector/Net 6.1
  です。

以上。
引用返信 編集キー/
■43473 / inTopicNo.7)  Re[6]: DataGridViewのデータソースの設定に付いて
□投稿者/ がながな (17回)-(2009/11/11(Wed) 09:28:54)
オショウさまありがとうございました。詳しくコメントいただき、大変助かりました。
無事解決いたしました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -