バックナンバー:VB.NETデータベースプログラミング
ADO.NETの基本的なプログラミングを中心に、すぐ使えるサンプルプログラム満載です。
【第44号】
第44号(2006.8.1発行)
======================================================================
★★ VB.NETデータベースプログラミング奮闘記 ★★
----------------------------------------------------------------------
いつもご購読ありがとうございます。ADO.NETの基本的なプログラミングを中
心に掲載しますので、今後ともよろしくお願い申し上げます。
いよいよ夏ですね。忙しくて夏休みも取れない方もいるかと思いますが、健康
には十分注意して、仕事頑張ってください。
すぐ使えるADO.NET --> サンプルプログラム満載
http://park5.wakwak.com/‾weblab/
======================================================================
■■ VB.NETワンポイント:udlファイル ■■
ConnectionStringプロパティに接続文字列ではなく、udlファイルを指定して、
データベースに接続することもできます。
データベース接続情報を保存する拡張子udlファイルは、次のように作成します。
1.メモ帳などで、空のテキストファイルを作成します。
2.ファイル拡張子をudlに変更します。
3.拡張子をudlに変更したファイルを開きます。
4.データリンクプロパティダイアログが表示されますので、
OLEプロバイダと接続データベースを設定します。
ファイルの内容は次のように自動生成されます。
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:¥xxxxx¥bin¥sample.mdb;
Persist Security Info=False
connect.udlファイルがプロジェクトファイルホルダの下のbinホルダにあれば、
次のようにコーディングすることができます。
Dim con As OleDbConnection
Try
con = New OleDbConnection()
'DB接続文字列の設定
con.ConnectionString = _
"File Name=" & Application.StartupPath & "¥connect.udl"
'DB接続を開く
con.Open()
Catch oExcept As Exception
Throw New Exception("例外発生" + oExcept.ToString)
Finally
'DB接続を閉じる
If Not con Is Nothing Then
If con.State = ConnectionState.Open Then
con.Close()
End If
End If
End Try
----------------------------------------------------------------------
■■ データベースアクセスクラスの汎用メソッドについて 13 ■■
今号から社員テーブルのレコード削除について説明します。
まず、clsDeleteSyainクラスを作成します。次にレコード削除メソッド
deleteRecordを、clsDBIOクラスに追加します。このメソッドの引数には、
clsDeleteSyainクラスのオブジェクトを指定します。
今号では、clsDeleteSyainクラスを作成します。clsUpdateSyainと同様になり
ますが、入力値のチェックがないぶん簡単です。
次号掲載予定のdeleteRecordメソッドも、updateRecordと同様になりますので、
時間に余裕がある方は、第43号を参考にして、是非コーディングしてみてくだ
さい。
少し補足します。updateRecordでも、レコード取得時の更新日時を引数に指定
します。更新のSQL文と同様にWHERE句で使用します。これは、更新の時と同様
に、他で更新されていた場合には、削除できないようにするためです。
他で削除されていた場合には、ExecuteNonQuery()の戻り値が0になりますので、
この場合もエラーにして、例外をスローします。
--【プログラムソースリスト】------------------------------------------
Option Strict On
Imports System.Text.RegularExpressions
'----------------- << 社員テーブル削除データクラス >> ----------------
Public Class clsDeleteSyain
Private mSyainCode As String
Private mUpdateTime As Date
'-------------------------------------------------------------------
' 機能:コンストラクタ
' 引数:in 社員1レコード分のデータ
'-------------------------------------------------------------------
Sub New(ByVal parSyain As DataRow)
MyBase.New()
'【社員コードセット】
If IsDBNull(parSyain("社員コード")) Then
Throw New Exception("clsDeleteSyain.New引数例外:社員コード未設定")
Else
pSyainCode = CStr(parSyain("社員コード"))
End If
'【更新日時セット】
If IsDBNull(parSyain("更新日時")) Then
Throw New Exception("clsDeleteSyain.New引数例外:更新日時未設定")
Else
pUpdateTime = CDate(parSyain("更新日時"))
End If
End Sub
'-------------------- プロパティ:社員コード --------------------
Public Property pSyainCode() As String
'Getプロパティ
Get
Return Me.mSyainCode
End Get
'Setプロパティ
Set(ByVal Value As String)
'未入力はエラー
If Value = "" Then
Throw New mySyainCodeException("社員コード未入力")
Else
'数字以外はエラー
If Not Regex.IsMatch(Value, "^[0-9]+$") Then
Throw New _
mySyainCodeException("社員コードに数字以外あり")
Else
'社員テーブルアクセスオブジェクト
Dim oDBIO As New clsDBIO()
'社員マスタにこの社員コードがなければエラー
If oDBIO.existKeyRecord("社員テーブル", Value) = False Then
Throw New mySyainCodeException("社員コード未登録")
Else
Me.mSyainCode = Value
End If
End If
End If
End Set
End Property
'-------------------- プロパティ:更新日時 --------------------
Public Property pUpdateTime() As Date
'Getプロパティ
Get
Return mUpdateTime
End Get
'Setプロパティ
Set(ByVal Value As Date)
mUpdateTime = Value
End Set
End Property
End Class
----------------------------------------------------------------------
■■ 次号予告 第45号(8月29日発行予定) ■■
1. VB.NETワンポイント
2. データベースアクセスクラスの汎用メソッドについて 14
======================================================================
VB.NET データベースプログラミング奮闘記
発行者:ウェブ実験室(-----@-----)
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」ホームページで公開している
ソースプログラム・データの利用により生じた損害等については、発行者は
一切責任を負いません。ソースプログラムの再利用は自由です。著作権は発行
者が所有します。
このメールマガジン及び「すぐ使えるADO.NET」ホームページに掲載されてい
る会社名・製品名等は、各社の登録商標または商標です。
======================================================================
↑このページ(メルマガ:VB.NETデータベース) 先頭へ | すぐ使えるADO.NET ホームへ
Copyright© すぐ使えるADO.NET. All rights reserved.