バックナンバー: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.