ストアドに対応したTDClass

Imports System.Data.SqlClient
Public Class TDInsUserInfo
Inherits BaseDAO
Private Const SP_NAME As String = "spInsertUserInfo"
Private ReadOnly _tCls As TUserInfo
Sub New(ByVal tCls As TUserInfo)
MyBase.New
_tCls = tCls
End Sub

Protected Overrides Sub ExecuteImp()
Using cmd As SqlCommand = Me.CreateCommand
MyBase.Insert(cmd)
End Using
End Sub

Private Function CreateCommand() As SqlCommand
Dim cmd As New SqlCommand With {
.CommandText = SP_NAME,
.CommandType = CommandType.StoredProcedure
}
'---SQLParameterのセット
Me.SetSQLParameters(cmd)
Return cmd
End Function

Protected Overrides Sub SetSQLParameters(ByVal cmd As SqlCommand)
'---ユーザID
cmd.Parameters.Add(New SqlParameter("@UserId", _tCls.UserId))
'---ユーザ名
cmd.Parameters.Add(New SqlParameter("@UserName", _tCls.UserName))
'---パスワード
'---New時は新規作成
cmd.Parameters.Add(New SqlParameter("@UserPassword", Utils.EncryptString(Utils.GetRndString(12))))
'---権限
cmd.Parameters.Add(New SqlParameter("@UserGrant", _tCls.UserGrant))
'---ステータス
cmd.Parameters.Add(New SqlParameter("@UserStatus", _tCls.UserStatus))
'---CreateUserId
cmd.Parameters.Add(New SqlParameter("@CreateUserId", usContext.UserId))
'---CreateDatetime
cmd.Parameters.Add(New SqlParameter("@CreateTimeStamp", DateTime.Now.ToString(STR_yyyyHMMHddSHHCmmCcc)))
'---ストアドのOutput(Err情報)を格納する共通パラメータ
'---エラーコード
cmd.Parameters.Add(New SqlParameter(STR_SP_ERR_CODE, SqlDbType.Int))
cmd.Parameters.Item(STR_SP_ERR_CODE).Direction = ParameterDirection.Output
'---エラーメッセージ
cmd.Parameters.Add(New SqlParameter(STR_SP_ERR_TEXT, SqlDbType.NVarChar, 1000))
cmd.Parameters.Item(STR_SP_ERR_TEXT).Direction = ParameterDirection.Output
'---エラー発生行
cmd.Parameters.Add(New SqlParameter(STR_SP_ERR_LINE, SqlDbType.Int))
cmd.Parameters.Item(STR_SP_ERR_LINE).Direction = ParameterDirection.Output
End Sub

End Class