MYSQL ADO.NET データインポートエクスポート

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

MYSQL ADO.NET データインポートエクスポート

ADO.NETでエクスポート

これは次回にまわそう
酔いがそろそろ回ってきた・・・・ の続き。 これは比較的MYSQLのサイトに分かりやすいサンプルが載っている。
で、コリコリとやってみる。
MYSQLのtestのデータベースにphotoのテーブルを作成して、id,photo,noteのフィールドを作成。
photoはMediumBlob(16MB)までOK。(但し、MYSQLが一度に受け付けられるパケットサイズに制限があるので注意!)
mysql> show variables like 'max_allowed_packet';
で確認できる。
パケット最値
大きなファイルを入れる場合は 下記のようにバイト単位で設定する。
再起動するとデフォルトに戻る。
my.confに書けばずっとそのまま。
mysql> set max_allowed_packet=10485760;

次に、前回でも作ったリモートユーザの作成。
MYSQLにリモートユーザを作成する
ちなみにこれは全権ユーザ。運用時は適切な権限で作成した方がベター。
mysql> GRANT ALL PRIVILEGES ON *.* TO vbuser IDENTIFIED BY 'sa';
Query OK, 0 rows affected (0.01 sec)

で、下記のVB2008でコリコリと書く。
参照設定でMYSQLを参照しておきます。
参照設定MYSQL




Imports MySql.Data
Imports MySql.Data.MySqlClient


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'MYSQLからデータを読み出す
        Dim cnstr As String
        cnstr = "Database=test;Data Source=centos5vm;User Id=vbuser;Password=sa"

        Dim con As New MySqlClient.MySqlConnection(cnstr)
        con.Open()

        Dim sql As String = "select * from photo"
        Dim Cmd As New MySqlCommand(sql, con)
        Dim myReader As MySqlClient.MySqlDataReader
        myReader = Cmd.ExecuteReader

        Try
            While myReader.Read()
                Debug.Print(myReader.Item(0).ToString)
                Debug.Print(myReader.Item(1).ToString)
                Debug.Print(myReader.Item(2).ToString)
                'Debug.Print(myReader.GetString(0))
            End While

        Catch ex As Exception

        End Try

        con.Clone()
        con.Dispose()

        MessageBox.Show("終了")
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        '画像をMYSQLに保存する
        Dim cnstr As String
        cnstr = "Database=test;Data Source=centos5vm;User Id=vbuser;Password=sa"
        Dim con As New MySqlClient.MySqlConnection(cnstr)
        con.Open()

        Dim da As MySqlDataAdapter = New MySqlDataAdapter
        da.InsertCommand = New MySqlCommand("INSERT INTO photo (id, photo,note) " & _
                                            "VALUES (?id, ?photo,?note)", con)

        da.InsertCommand.Parameters.Add("?id", MySqlDbType.VarChar).Value = 6
        da.InsertCommand.Parameters.Add("?photo", MySqlDbType.MediumBlob).Value = System.IO.File.ReadAllBytes("C:\Users\admin\Desktop\3.jpg")
        da.InsertCommand.Parameters.Add("?note", MySqlDbType.VarChar).Value = "あかさたなはまやらわ"

        da.InsertCommand.ExecuteNonQuery()

        da.Dispose()
        con.Clone()
        con.Dispose()
        MessageBox.Show("終了")
    End Sub
End Class


こちらが実行結果
実行結果

VB Tips And Sample(HOME)(VB.NET Sample インデックス)