受注伝票エントリー 第3回(システム日付取得)
第75号(2009.8.24発行) ==================================================================== ★★ -- VB.NETデータベースプログラミング奮闘記 -- ★★ (VB 2008 Express & SQL Server 2008 Express) -------------------------------------------------------------------- いつもご購読ありがとうございます。ADO.NETの基本的なサンプルプログラ ムをお届けします。今後ともよろしくお願い申し上げます。 やさしいVB2008 ADO.NET → https://adonetvb.com/index.html ==================================================================== ■■ 受注伝票エントリー 第3回 ■■ フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に 登録するプログラムを作成します。 フォームはこちら↓(一部名称の変更やコントロ-ルの追加があります) https://adonetvb.com/OrderEntry/index.html テーブル定義はこちら → https://adonetvb.com/OrderEntry/DB.html -------------------------------------------------------------------- ■ SELECT CONVERT(DATE, GETDATE()) ■ まず、システム日付を取得する共有メソッドGetSysDateを、販売管理データ ベースアクセス基本クラスに実装します。共有メソッドには、Sharedキー ワードを付加します。 SQL文に"SELECT CONVERT(DATE, GETDATE())"を指定して、SqlCommandの ExecuteScalarメソッドを呼び出すと、西暦年月日のみ取得できます。 DATE(date)は、SQL Server 2008 から新たに加わったデータ型です。 共有メソッドは、インスタンスを生成する必要がなく、クラス名.メソッド 名で呼び出します。 DBを開くときは、派生クラスからのみ利用できる共有メソッドOpenDBを使い ます。やはり販売管理データベースアクセス基本クラスに実装します。この クラスには、DBアクセスの共通メソッドを実装していきます。 DB接続文字列は、app.configファイルにあらかじめ登録しておきます。 接続文字列の作成方法はこちら↓ https://adonetvb.com/VB2008Connection01.html --【プログラムソースリスト:ClsHanbaiKanriDBIO.vb】---------------- Option Strict On Imports System.Configuration '参照の追加 System.Configuration Imports System.Data.SqlClient Imports System.Text.RegularExpressions Imports System.Transactions '参照の追加 System.Transactions '/// 抽象クラス:販売管理データベースアクセス基本クラス //// Public MustInherit Class ClsHanbaiKanriDBIO '******************************************************* ' 機能:現在のシステム日付を取得する共有メソッド ' 引数:なし ' 戻値:現在のシステム日付 '******************************************************* 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(DATE, 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 Function '******************************************************* ' 機能:DBを開く共有メソッド ' 引数:SqlConnectionオブジェクト(参照渡し) ' 引数:SqlCommandオブジェクト(参照渡し) ' 戻値:なし ' 補足:app.configファイルの ' :<connectionStrings>のaddタグのname属性を ' :"販売管理ConnectionString"に変更 '******************************************************* Protected 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 End Class -------------------------------------------------------------------- ■ 独自例外クラス ■ 独自例外クラスDBIOExceptionを作成します。他の独自例外クラスも同様に なります。 --【プログラムソースリスト:ClsException.vb】----------------------- '////////////////// DBIO独自例外クラス ///////////////////// Public Class DBIOException Inherits ApplicationException Public Sub New(ByVal message As String) MyBase.New(Message) End Sub End Class -------------------------------------------------------------------- 次号:データグリッドビュー初期化について ==================================================================== VB.NET データベースプログラミング奮闘記 発行者:ウェブ実験室(adonet‾live.jp ‾はあっとマーク) http://park5.wakwak.com/‾weblab/ -------------------------------------------------------------------- このメールマガジン(マガジンID: 0000128094)は、 インターネットの本屋さん『まぐまぐ』から配信されています。 http://www.mag2.com/ 【購読中止の方法】購読の中止は次のホームページからお願い致します。 http://park5.wakwak.com/‾weblab/ http://www.mag2.com/m/0000128094.htm -------------------------------------------------------------------- このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」 などのホームページで公開しているソースプログラム・データの利用により 生じた損害等については、発行者は一切責任を負いません。ソースプログラ ムの再利用は自由です。著作権は発行者が所有します。 このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」 などホームページに掲載されている会社名・製品名等は、各社の登録商標ま たは商標です。 ====================================================================