DBアクセス基本クラス(レコード追加) [VB 2010]
Visual Basic 2010/2008 やさしいADO.NET DBプログラム
DBアクセス基本クラスに、社員マスター表のレコード追加に必要なメンバーです。
レコード追加関連メンバー
社員マスターのレコード追加に必要なDBアクセス基本クラスのメンバーを実装します。
- コンストラクタ
- キー値のレコード存在をチェックするメソッド
- 引数に指定したテーブルのキー値のレコードを取得するメソッド
- 行データ生成メソッド(社員マスター1レコードに対応)
- 接続関連プロパティ設定メソッド
社員マスター表
| Key |
列名 |
データ型 |
NULLを許容 |
| ● |
社員コード |
nchar(5) |
しない |
|
社員氏名 |
nvarchar(20) |
しない |
|
社員カナ |
nvarchar(40) |
しない |
|
部署コード |
nchar(4) |
しない |
|
更新日時 |
datetime |
しない |
Option Strict On
Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Transactions
Public Interface IDBIO
Function InsertRecord(ByVal shain As ClsInsertShain) As Integer
End Interface
Public MustInherit Class ClsSampleDBIO
Public Sub New()
MyBase.New()
End Sub
Public Function ExistKeyData(ByVal tableName As String, _
ByVal keyField As String, _
ByVal keyCode As String) _
As Boolean
Dim retExist As Boolean
Using con As New SqlConnection
Using cmd As New SqlCommand
Me.SetConnection(con, cmd)
cmd.CommandText = "SELECT COUNT(*) FROM " & _
tableName & _
" WHERE " & keyField & " = @KeyCode"
cmd.Parameters.Clear()
cmd.Parameters.Add("@KeyCode", SqlDbType.NChar)
cmd.Parameters("@KeyCode").Value = keyCode
con.Open()
Dim count As Integer = CInt(cmd.ExecuteScalar())
If count = 1 Then
retExist = True
Else
retExist = False
End If
End Using
End Using
Return retExist
End Function
Public Function GetKeyData(ByVal tableName As String, _
ByVal keyField As String, _
ByVal keyCode As String) _
As DataTable
Dim retDt As New DataTable
Using con As New SqlConnection
Using cmd As New SqlCommand
Me.SetConnection(con, cmd)
cmd.CommandText = "SELECT * FROM " & _
tableName & _
" WHERE " & keyField & " = @keyCode"
cmd.Parameters.Clear()
cmd.Parameters.Add("@keyCode", SqlDbType.NChar)
cmd.Parameters("@KeyCode").Value = keyCode
Dim da As New SqlDataAdapter
da.SelectCommand = cmd
da.Fill(retDt)
End Using
End Using
Return retDt
End Function
Public Function CreateDataRow(ByVal tableName As String, _
ByVal keyField As String) _
As DataRow
Dim retRow As DataRow
Dim dt As New DataTable
dt = Me.GetKeyData(tableName, keyField, "_")
retRow = dt.NewRow
Return retRow
End Function
Public Sub SetConnection(ByRef con As SqlConnection, _
ByRef cmd As SqlCommand)
Dim settings As ConnectionStringSettings
settings = _
ConfigurationManager.ConnectionStrings _
("AdoNet.My.MySettings.sampleDBConStr")
If settings Is Nothing Then
Throw New Exception _
("接続文字列がapp.configに未登録")
Else
con.ConnectionString = settings.ConnectionString
cmd.Connection = con
End If
End Sub
End Class