引き続きVB.NET。
プログラムは前回のものを参考にしてください。
【VB.NET】Oracleに接続してデータを検索してみる
''' <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;")
' データベースオープン
conn.Open()
' データ更新
For i = 0 To dgvCat.Rows.Count - 1
' テーブルから対象のデータを取得
Dim no As Integer = dgvCat(0, i).Value
' シーケンス列としていないので、
' 最初に件数を取得して No を計算する
Dim cmd As OracleCommand = New OracleCommand("SELECT COUNT(*) FROM TBLCAT WHERE No = " + no, conn)
Dim cnt As Decimal = cmd.ExecuteScalar()
If (cnt = 0) Then
' データ追加
Dim query = "INSERT INTO TBLCAT VALUES (" +
(cnt + 1) +
", '" + dgvCat(1, i).Value + "'" +
", '" + dgvCat(2, i).Value + "'" +
", " + dgvCat(3, i).Value + "'" +
", '" + dgvCat(4, i).Value + "'" +
", '" + dgvCat(5, i).Value + "')"
cmd = New OracleCommand(query, conn)
cmd.ExecuteNonQuery()
Else
' データ変更
Dim query = "UPDATE TBLCAT SET" +
" NAME = '" + dgvCat(1, i).Value + "'" +
", SEX = '" + dgvCat(2, i).Value + "'" +
", AGE = " + dgvCat(3, i).Value +
", KIND_CD = '" + dgvCat(4, i).Value + "'" +
", FAVORITE = '" + dgvCat(5, i).Value + "' " +
"WHERE NO = " + dgvCat(0, i).Value
cmd = New OracleCommand(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;")
' データベースオープン
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 OracleCommand = New OracleCommand(query, conn)
cmd.ExecuteNonQuery()
Next
conn.Close()
End Using
' データ再検索
search()
MessageBox.Show("データを削除しました。")
End Sub
起動後の画面は、SQLiteの時と変わらないので割愛しました。
次回以降は、一応他のDBもやっていこうかと思います。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント