質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

662閲覧

DatagridviewにMySQLからデータを取得して表示する

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/03/16 06:40

編集2020/03/17 00:38

DatagridviewにMySQLからデータを取得し、表示する処理を作成しています。

発生している問題

MySQLからデータは取得できているのですが、一つのcellに全部のデータが表示されてしまっている状況です。

noab
no,a1,b1

これをデータごとにCellに表示したいです。
下記イメージ

noab
1a1b1
### 該当のソースコード
```VB
Dim objCommand As MySqlCommand = Gnl_objConnection.CreateCommand
objCommand.CommandText = "Select * From tbl_master"
Dim objDataReader As MySqlDataReader = objCommand.ExecuteReader
'DatagridviewにMySQLのデータをセット
Call Datagridview1.Rows.Add(CStr(objDataReader.Item("No")) & " " & CStr(objDataReader.Item("a")) & " " & CStr(objDataReader.Item("b")))
```
### 補足情報(FW/ツールのバージョンなど)
.Net Framework4
Microsoft Visual Studio2010

エラーメッセージなどはありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/16 06:58

DataTable に MySQL のデータを取得してきて、それを BindingSource 経由で DataGridView にバインドするのがはるかに簡単かつ適切だと思うのですが、そうしない特別な理由などがあるのでしょうか?
退会済みユーザー

退会済みユーザー

2020/03/16 07:11

なんせ、最近触れたばかりで今の私の精一杯の情報の中でやっている状況です。 もし、違う方法があるのでしたら教えて欲しいです。
退会済みユーザー

退会済みユーザー

2020/03/16 08:53 編集

freemann さんの回答を見てください。分からなかったらその回答のコメント欄で質問してください。
guest

回答1

0

ベストアンサー

参考になるURLを載せておきます。
やることは一緒です。
SQLite用のを使うか、MySql用のを使うかの違いです。

SQLiteからデータを取得してDataGridViewに表示する

投稿2020/03/16 07:06

freemann

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/17 00:04

ご回答ありがとうございます。 頂いたものを参考に変更してみました。見えにくかったらすみません。 --------------------------------------------------------------------------------------------------------- Dim dt As DataTable = New DataTable() 'MySQLへの接続情報の設定をします。 Dim builder As MySqlConnectionStringBuilder = New MySqlConnectionStringBuilder() 'MySQLのファイルへのパスを設定します。 builder.DataSource = "Database=aa;Data Source=localhost;User Id=bb;Password=****" '接続情報を使ってコネクションを生成します。 Using conn As New MySqlConnection(builder.ConnectionString) 'MySQL文とコネクションを設定します。 Using cmd As New MySqlCommand("SELECT * FROM tbl_master", conn) 'MySQLへの橋渡しのアダプターを設定します。 Dim sda As MySqlDataAdapter = New MySqlDataAdapter() 'SELECTコマンドを設定します。 sda.SelectCommand = cmd 'SELECTの実行及びフェッチ sda.Fill(dt) 'グリッドに表示します。 Datagridview1.DataSource = dt End Using End Using --------------------------------------------------------------------------------------------------------- 上から三行目、「builder.DataSource = "Database=aa;Data Source=localhost;User Id=bb;Password=****"」この部分ですね。 'DataSourceは'MySql.Data.MySqlClient.MysqlConnectionStringBuilder'のメンバーではありません。 というエラーメッセージが表示されてしまいます。
shinami

2020/03/17 01:54

ConnectionStringBuilderを使うのならServerプロパティにはlocalhost、UserIDにはbb、Passwordにはパスワードをそれぞれbuilderオブジェクトのプロパティに入れてください。 または、質問文には書かれていませんが、当初接続で成功していたやり方で接続の方を行ってみては? おそらくConnectionクラスのConnectionStringへ文字列でセミコロンで区切りながら書いたのだと予想しますがそれでも良いです。
退会済みユーザー

退会済みユーザー

2020/03/17 02:00 編集

freemannさん返信ありがとうございます。 DataSourceをSerVerに変更したところ先程のエラーメッセージは消えました。 ですが、実行時「sda.Fill(dt)」の部分で'Unable to connect to any of the specified MySQL hosts' のエラーメッセージが表示されてしまいました。 色々調べてみたのですが、ファイアーウォールは無効にしてあるので、それではじかれているとは考えられず、Sourceの部分をServerに変え「Server=localhost:3306」でやってみたのですがそれでも上手くいきませんでした。
freemann

2020/03/17 02:05

Serverをlocalhostではなく、パソコン名ではどうでしょうか。 たまにそういうソフトもあるのです。
退会済みユーザー

退会済みユーザー

2020/03/17 02:07

shinamiさん返信ありがとうございます。 当初の接続方法(ConnectionクラスのConnectionString)でやったところ接続できました。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/03/17 02:17 編集

builder = New MySqlConnection builder .ConnectionString = "Database=aa;Data Source=localhost;User Id=bb;Password=****" Using conn As New MySqlConnection(builder .ConnectionString) で接続できました。
退会済みユーザー

退会済みユーザー

2020/03/17 02:30 編集

欲しいものだけを待ってくる場合はどうしたらいいのでしょうか?
freemann

2020/03/17 03:04

欲しいものだけとは、データですよね?SELECT文のWHERE句で絞り込みをするかと思います。
退会済みユーザー

退会済みユーザー

2020/03/17 04:23 編集

取得できました、ありがとうございます。 一応質問に対する解決はしたので、一旦閉じたいと思います。 新たに不具合がでてしまったんですが、このままコメントでやり取りをすると長々となってしまいそうなので、別に新たに質問します。 結果として下記修正コードです。 Dim dt As DataTable = New DataTable() 'Dim ds As New DataSet builder = New MySqlConnection builder .ConnectionString = "Database=aa;Data Source=localhost;User Id=bb;Password=****" '接続情報を使ってコネクションを生成します。 Using conn As New MySqlConnection(builder .ConnectionString) 'MySQL文とコネクションを設定します。 Using cmd As New MySqlCommand("SELECT '取得したいデータ名称' FROM tbl_master,conn) 'MySQLへの橋渡しのアダプターを設定します。 Dim sda As MySqlDataAdapter = New MySqlDataAdapter() ''SELECTコマンドを設定します。 sda.SelectCommand = cmd 'SELECTの実行及びフェッチ sda.Fill(dt) 'グリッドに表示します。 Datagridview1.DataSource = dt End Using End Using
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問