販売管理データベースをアクセスするための基本クラスです。データベースの各テーブルにアクセスするためには、基本クラスから派生したクラスに実装します。このクラス構成にすると、派生クラスが効率的に作成できます。

受注エントリーで販売管理データベースにアクセスするための基本クラスです。
得意先表、商品表、受注ヘッダー表、受注ディテール表にアクセスするためには、この基本クラスを派生したクラスにアクセスメソッドを実装します。
販売管理データベースアクセス基本クラスClsHanbaiKanriDBIOには、次のメソッドを実装します。
Option Strict On Imports System.Configuration ' 参照の追加 System.Configuration Imports System.Data.SqlClient Imports System.Transactions ' 参照の追加 System.Transactions '////// 基本クラス:販売管理データベースアクセスクラス ////// Public Class ClsHanbaiKanriDBIO '********************************************************** ' 機能:現在のシステム日付を取得するメソッド ' 引数:なし ' 戻値:現在のシステム日付 '******1*********2*********3*********4*********5**********6 Public Shared Function GetSysDate() As Date Dim retSysDate As New Date 'リターン値 Try Using con As New SqlConnection Using cmd As New SqlCommand ' DBを開く ClsHanbaiKanriDBIO.OpenDB(con, cmd) ' SQL文設定 cmd.CommandText = "SELECT CONVERT(DATEtime, GETDATE())" ' 表からレコード取得 retSysDate = CDate(cmd.ExecuteScalar()) End Using End Using ' ◆戻値を設定してリターン Return retSysDate Catch ex As DBIOException ' DBIO例外が発生した時の処理 Throw New DBIOException(ex.Message) Catch ex As Exception ' その他例外が発生した時の処理 Throw New Exception(ex.ToString) End Try End Sub '********************************************************** ' 機能:DBを開く共有メソッド ' 引数:SqlConnectionオブジェクト ' 引数:SqlCommandオブジェクト ' 戻値:なし ' 補足:app.configファイルの ' :<connectionStrings>のaddタグのname属性を ' :"販売管理ConnectionString"に変更 '******1*********2*********3*********4*********5**********6 Public Shared Sub OpenDB(ByRef con As SqlConnection, _ ByRef cmd As SqlCommand) Try Dim settings As ConnectionStringSettings ' 接続文字列をapp.configファイルから取得 settings = ConfigurationManager.ConnectionStrings _ ("販売管理ConnectionString") If settings Is Nothing Then ' 接続文字列取得エラー Throw New DBIOException("接続文字列がapp.configに未登録.") Else ' 接続文字列の設定 con.ConnectionString = settings.ConnectionString ' SqlCommand.Connectionプロパティの設定 cmd.Connection = con ' DBを開く con.Open() End If Catch ex As DBIOException ' DBIO例外が発生した時の処理 Throw New DBIOException(ex.Message) Catch ex As Exception ' その他例外が発生した時の処理 Throw New Exception(ex.ToString) End Try End Sub '--------------------< 変数メンバー >------------------- Protected tableNameValue As String ' 表名 Protected keyFieldValue As String ' キー項目 Protected keyValue As String ' キー値 Protected dtValue As DataTable ' 取得レコード '========================================================== ' 機能:コンストラクタ ' 引数:表名(テーブル名) ' 引数:キーフィールド名(列名) ' 引数:キー値 '========================================================== Public Sub New(ByVal tableName As String, _ ByVal keyField As String, _ Optional ByVal value As String = "_") ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New() ' 表からレコード取得 dtValue = GetKeyData(tableName, keyField, value)
keyValue = value ' キー値
tableNameValue = tableName ' 表名
keyFieldValue = keyField ' キーフィールド名
End Sub '********************************************************** ' 機能:表から取得したレコードを返すメソッド ' 引数:キーフィールド名 ' 戻値:表から取得したレコード '******1*********2*********3*********4*********5**********6 Public Function GetRowsData() As DataTable Return dtValue End Function '********************************************************** ' 機能:引数に指定した表のキー値のレコードを取得する ' 引数:表名 ' 引数:キーフィールド名 ' 引数:キー値 ' 戻値:取得したレコード ' 補足:テーブル名の主キーフィールドはNChar型とする '******1*********2*********3*********4*********5**********6 Protected Function GetKeyData(ByVal tableName As String, _ ByVal fieldName As String, _ ByVal value As String) _ As DataTable Dim retDt As New DataTable() 'リターン値 '----------<< テーブルからレコード取得 >>---------- Using con As New SqlConnection Using cmd As New SqlCommand ' DBを開く ClsHanbaiKanriDBIO.OpenDB(con, cmd) ' SQL文設定 cmd.CommandText = "SELECT * FROM " & tableName & _ " WHERE " & fieldName & " = @value" ' SQL文の引数設定 cmd.Parameters.Clear() ' 引数の実際のサイズからデータ長を推論 cmd.Parameters.Add("@value", SqlDbType.NChar) ' SQL文引数に値を設定 cmd.Parameters("@value").Value = value ' 表からレコード取得 Dim da As New SqlDataAdapter da.SelectCommand = cmd da.Fill(retDt) End Using End Using ' ◆戻値を設定してリターン Return retDt End Function '********************************************************** ' 機能:表の1行分の空データを生成するメソッド ' 引数:なし ' 戻値:生成した1行分の空データ '******1*********2*********3*********4*********5**********6 Public Function CreateDataRow() As DataRow Dim retDr As DataRow ' リターン値 Dim dt As New DataTable ' 列情報を取込むために、レコードを取得するが ' 取得できなくても問題ないので ' 第3引数のキー値はアンダースコアを設定 dt = Me.GetKeyData(tableNameValue, keyFieldValue, "_") retDr = dt.NewRow Return retDr End Function End Class
| ◆ DBアクセス TOP頁へ ◆ |
|---|
| ◆ SQL Server ◆ |
| Sql ExecuteScalar |
| Sql ExecuteReader |
| Sql ComboBox |
| Sql ListBox |
| Sql DataGridView |
| ◆ MDB ◆ |
| Ole ExecuteScalar |
| Ole ExecuteReader |
| Ole ComboBox |
| Ole ListBox |
| Ole DataGridView |
| ◆得意先マスター保守 TOP◆ |
|---|
| 得意先基本クラス |
| 得意先派生クラス |
| 販売管理DBアクセスクラス |
| 得意先マスターアクセス |
| 独自例外クラス |
| ●レコード追加仕様 |
| レコード追加画面 |
| 得意先マスター追加アクセス |
| ◆ 受注エントリー TOP頁 ◆ |
|---|
| テーブル定義 |
| データ接続の追加 |
| システム日付取得 |
| DataGridView列スタイル |
| フォームロード・初期化 |
| DBアクセス基本クラス |
| 商品クラス |
| 得意先クラス |
| 受注ディテールクラス |
| 受注ヘッダークラス |
| 受注伝票データクラス |
| 受注伝票アクセスクラス |
| 行確認・追加ボタン |
| 得意先確認・変更ボタン |
| 明細行変更・完了ボタン |
| 明細行削除ボタン |
| 受注登録ボタン |
| クリアボタン |