MYSQL ADO.NET データインポートエクスポート
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を参照しておきます。
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
|
こちらが実行結果
|