【VB.NET】MySQL(MariaDB)に接続してデータ操作(追加・更新・削除)をしてみる

2018年1月18日VB.NET,開発

おはようございます。

前回に引き続き、MySQLの話し。
今回は追加、更新、削除をやってみましたが、ほとんど Oracle と変わらず。

プログラムは前回のものを参考にしてください。

【VB.NET】MySQL(MariaDB)に接続してデータ操作(追加・更新・削除)をしてみる

スポンサーリンク

プログラム修正

更新処理

    ''' <summary>
    ''' 更新ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click

        'Using conn = New OracleConnection("Data Source=localhost;User Id=USER01;Password=USER01;")
        Using conn As New MySqlConnection("Database=DB01;Data Source=localhost;User Id=USER01;Password=USER01; sqlservermode=True;")


            ' データベースオープン
            conn.Open()

            ' データ更新
            For i = 0 To dgvCat.Rows.Count - 1

                ' テーブルから対象のデータを取得
                Dim no As Integer = dgvCat(0, i).Value

                ' シーケンス列としていないので、
                ' 最初に件数を取得して No を計算する
                Dim cmd As MySqlCommand = New MySqlCommand("SELECT COUNT(*) FROM TBLCAT WHERE No = '" + no.ToString() + "'", conn)
                Dim cnt As Decimal = cmd.ExecuteScalar()

                If (cnt = 0) Then

                    ' データ追加
                    Dim query = "INSERT INTO TBLCAT VALUES (" +
                        no.ToString() +
                        ", '" + dgvCat(1, i).Value + "'" +
                        ", '" + dgvCat(2, i).Value + "'" +
                        ", '" + dgvCat(3, i).Value + "'" +
                        ", '" + dgvCat(4, i).Value + "'" +
                        ", '" + dgvCat(5, i).Value + "')"

                    cmd = New MySqlCommand(query, conn)
                    cmd.ExecuteNonQuery()

                Else

                    ' データ変更
                    Dim query = "UPDATE TBLCAT SET" +
                            "  NAME = '" + dgvCat(1, i).Value.ToString() + "'" +
                            ", SEX = '" + dgvCat(2, i).Value.ToString() + "'" +
                            ", AGE = '" + dgvCat(3, i).Value.ToString() + "'" +
                            ", KIND_CD = '" + dgvCat(4, i).Value.ToString() + "'" +
                            ", FAVORITE = '" + dgvCat(5, i).Value.ToString() + "' " +
                            "WHERE NO = '" + dgvCat(0, i).Value.ToString() + "'"

                    cmd = New MySqlCommand(query, conn)
                    cmd.ExecuteNonQuery()

                End If

            Next


            conn.Close()
        End Using

        AddRowFlg = False

        ' データ再検索
        search()
        MessageBox.Show("データを更新しました。")

    End Sub

削除処理

    ''' <summary>
    ''' 削除ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click

        'Using conn = New OracleConnection("Data Source=localhost;User Id=USER01;Password=USER01;")
        Using conn As New MySqlConnection("Database=DB01;Data Source=localhost;User Id=USER01;Password=USER01; sqlservermode=True;")

            ' データベースオープン
            conn.Open()

            ' 選択されている行
            For Each r As DataGridViewRow In dgvCat.SelectedRows

                Dim Cat As Cat = CType(dgvCat.DataSource(), List(Of Cat)).Item(r.Index)

                ' データ削除
                Dim query As String = "DELETE FROM TBLCAT WHERE NO = " + Cat.No

                ' クエリ実行
                Dim cmd As MySqlCommand = New MySqlCommand(query, conn)
                cmd.ExecuteNonQuery()

            Next


            conn.Close()
        End Using

        ' データ再検索
        search()
        MessageBox.Show("データを削除しました。")

    End Sub

 

まとめ

起動後の画面は割愛。

OracleからMySQLに変更するのは簡単にできそうですね。
次回は PostgreSQL を試してみたいと思います。

ではでは。

スポンサーリンク


関連するコンテンツ

2018年1月18日VB.NET,開発MariaDB,MySQL,VB.NET,サンプルプログラム

Posted by doradora