社員マスターIO レコード追加 [VB 2010]
Visual Basic 2010/2008 やさしいADO.NET DBプログラム
DBアクセス基本クラスから派生した社員マスターアクセスクラスのレコード追加関連のメンバーです。
社員マスターアクセス レコード追加関連メンバー
社員マスターアクセスクラスは、sampleDBアクセス基本クラスを継承し、レコード追加に必要なメンバーを実装します。
- コンストラクタ(引数:社員コード)
- 社員コードプロパティ
- 行データ生成メソッド(社員マスター1レコードに対応)
- 1レコード追加メソッド
社員マスター表
| Key |
列名 |
データ型 |
NULLを許容 |
| ● |
社員コード |
nchar(5) |
しない |
|
社員氏名 |
nvarchar(20) |
しない |
|
社員カナ |
nvarchar(40) |
しない |
|
部署コード |
nchar(4) |
しない |
|
更新日時 |
datetime |
しない |
Option Strict On
Imports System.Data.SqlClient
Imports System.Text.RegularExpressions
Imports System.Transactions
Public Class ClsShainTableIO
Inherits ClsSampleDBIO
Implements IDBIO
Public Sub New()
MyBase.New()
End Sub
Public Overloads Function _
ExistKeyData(ByVal keyCode As String) As Boolean
Dim retExist As Boolean
If keyCode.Length = 0 Then
Throw New myShainCodeException _
("社員コードが未入力")
End If
If Not Regex.IsMatch(keyCode, "^[0-9]+$") Then
Throw New myShainCodeException _
("社員コードに数字以外の文字があります")
End If
If Not keyCode.Length = 5 Then
Throw New myShainCodeException _
("社員コードの桁数が正しくない")
End If
retExist = _
MyBase.ExistKeyData("社員テーブル", "社員コード", keyCode)
Return retExist
End Function
Public Function InsertRecord(ByVal shain As ClsInsertShain) As Integer _
Implements IDBIO.InsertRecord
Dim retInsertCount As Integer
If shain Is Nothing Then
Throw New myDBIOException _
("ClsShainTableIO.InsertRecord:引数が未設定")
End If
Using tran As New TransactionScope
Using con As New SqlConnection
Using cmd As New SqlCommand
MyBase.SetConnection(con, cmd)
cmd.CommandText = _
"INSERT INTO " & _
"社員テーブル(社員コード, 社員氏名, 社員カナ, " & _
"更新日時) " & _
"VALUES(@code, @shimei, @kana, @kousin)"
cmd.Parameters.Clear()
cmd.Parameters.Add("@code", SqlDbType.NChar, 5)
cmd.Parameters.Add("@shimei", SqlDbType.NVarChar, 20)
cmd.Parameters.Add("@kana", SqlDbType.NVarChar, 40)
cmd.Parameters.Add("@kousin", SqlDbType.DateTime)
cmd.Parameters("@code").Value = Shain.ShainCode
cmd.Parameters("@shimei").Value = Shain.ShainShimei
cmd.Parameters("@kana").Value = Shain.ShainKana
cmd.Parameters("@kousin").Value = DateTime.Now
con.Open()
retInsertCount = cmd.ExecuteNonQuery()
End Using
End Using
If retInsertCount = 1 Then
tran.Complete()
Else
Throw New myDBIOException _
("ClsShainTableIO.InsertRecord:レコード追加失敗")
End If
End Using
Return retInsertCount
End Function
Public Overloads Function CreateDataRow() As DataRow
Dim retRow As DataRow
retRow = MyBase.CreateDataRow("社員テーブル", "社員コード")
Return retRow
End Function
End Class