VB.NET 【データベース操作編】
目次
データベースへの接続
データベースに接続する処理について解説します。
プログラムソース
Imports System.Data
Module Module1
Sub Main()
Dim Cn As New OleDb.OleDbConnection
Dim strCn As String
strCn = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Cn.ConnectionString = strCn
Cn.Open()
Console.WriteLine("接続完了")
Console.ReadKey()
Cn.Close()
Cn.Dispose()
End Sub
End Module
解説
OleDb.OleDbConnection
データベース接続に使用するクラス
OleDbConnection.ConnectionString = 接続文字列
接続文字列を設定します。
OleDbConnection.Open
データベースに接続します。
OleDbConnection.Close
データベースとの接続を切断します。
データの取得
データを取得する処理について解説します。
プログラムソース
Imports System.Data
Module Module1
Sub Main()
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As New OleDb.OleDbCommand
Dim Da As New OleDb.OleDbDataAdapter
Dim Ds As New DataSet
Cn.ConnectionString = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Cn.Open()
Cmd.Connection = Cn
Cmd.CommandText = "SELECT * FROM 社員マスタ"
Da.SelectCommand = Cmd
Da.Fill(Ds)
For Each dr As DataRow In Ds.Tables(0).rows
Console.WriteLine(dr.Item("社員コード") & " " & dr.Item("社員名"))
Next
Console.ReadKey()
Cn.Close()
Ds.Dispose() : Da.Dispose() : Cmd.Dispose() : Cn.Dispose()
End Sub
End Module
解説
OleDb.OleDbDataAdapter
データ取得に使用するクラス
OleDb.OleDbCommand
実行するSQL文を設定するクラス
DataSet
取得したデータを格納するクラス
OleDbDataAdapter.Fill(データセット)
データセットにデータを格納します。
SQLの実行
SQLを実行する処理について解説します。
プログラムソース
Imports System.Data
Module Module1
Sub Main()
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As New OleDb.OleDbCommand
Dim strSQL As String
Cn.ConnectionString = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Cn.Open()
strSQL = "UPDATE 社員マスタ " & _
"SET 部門コード = 3 " & _
"WHERE 社員コード = 4"
Cmd.Connection = Cn
Cmd.CommandText = strSQL
Cmd.ExecuteNonQuery()
Console.WriteLine("更新完了") : Console.ReadKey()
Cn.Close()
Cmd.Dispose() : Cn.Dispose()
End Sub
End Module
解説
OleDbCommand.ExecuteNonQuery
指定されたSQL文を実行します。
トランザクション処理
トランザクション処理について解説します。
プログラムソース
Imports System.Data
Module Module1
Sub Main()
Dim Cn As New OleDb.OleDbConnection
Dim Cmd As New OleDb.OleDbCommand
Dim Trn As OleDb.OleDbTransaction, strSQL As String
Try
Cn.ConnectionString = "Provider=SQLOLEDB;" & _
"Data Source=localhost\SQLExpress;" & _
"Initial Catalog=Database;User ID=sa;Password=sa;"
Cn.Open()
Trn = Cn.BeginTransaction()
Cmd.Connection = Cn
Cmd.Transaction = Trn
strSQL = "INSERT 社員マスタ VALUES(1, '社員A', 1)"
Cmd.CommandText = strSQL : Cmd.ExecuteNonQuery()
strSQL = "INSERT 所有資格マスタ VALUES(1, 1, '簿記3級')"
Cmd.CommandText = strSQL : Cmd.ExecuteNonQuery()
Trn.Commit() : Console.WriteLine("成功")
Catch Ex As Exception
Trn.Rollback() : Console.WriteLine("失敗")
Finally
Cn.Close() : Cmd.Dispose() : Cn.Dispose() : Console.ReadKey()
End Try
End Sub
End Module
解説
OleDbConnection.BeginTransaction
トランザクション処理を開始します。
OleDbTransaction.Commit
更新内容を確定する場合は、コミットします。
OleDbTransaction.Rollback
更新内容を破棄する場合は、ロールバックします。