【VB.NET】Oracleに接続してデータを操作(追加・更新・削除)してみる
おはようございます。
今日も引き続きVB.NET。
プログラムは前回のものを参考にしてください。
スポンサーリンク
プログラム修正
更新処理
''' <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もやっていこうかと思います。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません