競馬ブログ「ギャンブルからの脱却」

自作の予想ソフトを駆使して投資的競馬に挑戦。

基礎プログラム~レコード挿入編~

Visual StudioMySQLの接続が確認できたら今度は実際にレコードを挿入してみます。

テーブルの作成

サーバーエクスプローラー→作成済みのDB→Tablesを右クリック→Create Table
任意のカラムを設定後、×で閉じるとテーブル名の入力を求められます。

フォームの作成

まずは新しいWindowsフォームアプリケーションを作成して、ボタンを2つ配置して↓のようなフォームを用意します。

f:id:last3f:20160131203614p:plain

あとはそれぞれのボタンを押した時にDB接続、レコード挿入するようコードを書いていきます。

サンプルコード

※Openメソッド内のPasswordなどはMySQL Serverインストール時に設定したものに変える必要があります。

Imports MySql.Data.MySqlClient

Public Class Form1

    Dim builder = New MySqlConnectionStringBuilder()
    Dim con As New MySqlConnection

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'DB接続
        Open()
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'レコード挿入
        Insert()
    End Sub

    Public Sub Open()
        builder.Server = "localhost"
        builder.Port = 3306
        builder.UserID = "root"
        builder.Password = "****"
        builder.Database = "test"
        builder.CharacterSet = "sjis"
        Dim conStr = builder.ToString()

        con.ConnectionString = conStr
        con.Open()
        MsgBox("接続成功")
    End Sub

    Public Function Insert() As Boolean
        Dim trans As MySqlTransaction = Nothing
        trans = con.BeginTransaction()
        Try
            Dim command As New MySqlCommand
            command.Connection = con
            command.CommandType = CommandType.Text

            Dim sb As New System.Text.StringBuilder
            sb.Append("INSERT INTO horse (name) VALUES (@name)")

            command.CommandText = sb.ToString
            command.Parameters.Clear()
            command.Parameters.Add("@name", MySqlDbType.VarChar, 9).Value = "Buchiko"
            command.ExecuteNonQuery()
        Catch ex As MySqlException
            trans.Rollback()
            MsgBox("ERROR")
            Return False
        Finally

        End Try
        trans.Commit()
        MsgBox("レコードを挿入しました。")
        Return True
    End Function

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        con.Close()
    End Sub
End Class

実行結果

デバッグの開始→DB接続ボタンをクリック→データ挿入ボタンをクリックという順に操作していくと実際にレコードが挿入されます。
↓の画像は、確認のためにサーバーエクスプローラー→Tables→対象のテーブルを右クリック→データの取得でレコードを参照している画面です。

f:id:last3f:20160131205507p:plain