受注伝票エントリー 第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」
などホームページに掲載されている会社名・製品名等は、各社の登録商標ま
たは商標です。
====================================================================