前回に引き続き、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 を試してみたいと思います。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント