バックナンバー:VB.NETデータベースプログラミング
ADO.NETの基本的なプログラミングを中心に、すぐ使えるサンプルプログラム満載です。
【第10号】
第10号(2004.7.9発行) ====================================================================== ★★ VB.NETデータベースプログラミング奮闘記 ★★ ---------------------------------------------------------------------- ADO.NETの基本的なプログラミングを中心に掲載します。 末永くご購読の程よろしくお願い申し上げます。 すぐ使えるADO.NET --> サンプルプログラム満載 http://park5.wakwak.com/‾weblab/ ====================================================================== -----【目次】----- 1. VB.NETワンポイント:文字列の前後のスペースを除去 2. 部門単位で自動連番を生成するクラスの作成1 3. 次号予告 ---------------------------------------------------------------------- ■■ VB.NETワンポイント:文字列の前後のスペースを除去 ■■ 文字列の前後のスペースを除去する関数を紹介します。 Dim str1 As String = " -123- " Dim str2 As String とします。 ◆LTrim関数: 引数に指定した文字列の前にあるスペースを除いた文字列を返します。 str2 = "-123- " になります。 str2 = LTrim(str1) Trace.WriteLine("LTrim:str2 = [" + str2 + "]") ◆RTrim関数: 引数に指定した文字列の後にあるスペースを除いた文字列を返します。 str2 = " -123-" になります。 str2 = RTrim(str1) Trace.WriteLine("RTrim:str2 = [" + str2 + "]") ◆Trim関数: 引数に指定した文字列の前後にあるスペースを除いた文字列を返します。 str2 = "-123-" になります。 str2 = Trim(str1) Trace.WriteLine("Trim:str2 = [" + str2 + "]") Stringクラスにも同様なメソッドTrimStart、TrimEnd、Trimがあります。 ◆TrimStartメソッド: LTrim(str1)と同機能です。str2 = "-123- " になります。 str2 = str1.TrimStart ◆TrimEndメソッド: RTrim(str1)と同機能です。str2 = " -123-" になります。 str2 = str1.TrimEnd ◆Trimメソッド: Trim(str1)と同機能です。 str2 = "-123-" になります。 str2 = str1.Trim TrimStart、TrimEnd、Trimの各メソッドは、複数の特定文字を削除することも できます。ひとつ例を挙げておきます。 Dim aryChar() As Char = {"A"c, "C"c} '注:文字の時は、末尾にc str1 = "AAACCXYZ " str2 = str1.TrimStart(aryChar) とすると、str2 = "XYZ " になります。 ---------------------------------------------------------------------- ■■ 部門単位で自動連番を生成するクラスの作成1 ■■ 部門コードに5桁番号を連結して返すメソッドを含むクラスを考えます。 部門コードは、クラスオブジェクト生成時に引数として渡します。5桁番号は、 sample.mdbの連番生成テーブルに持つことにします。テーブルは次のように定 義します。 key フィールド名 データ型 サイズ 値要求 空文字列の許可 -------------------------------------------------------------- ◎ 部門コード テキスト型 3 はい いいえ − 連番 数値型 整数型 はい − − 更新日時 日付/時刻型 − はい − 注意1:テーブル名・フィールド名は、必要なら英数字に変更して下さい キー値にない部門コードを引数に指定した時は、新規にレコードを追加しま す。部門コードはエラーチェック済みであるという前提で考えますので、省 略しています。桁あふれは考慮していません。 クラスのデータメンバを紹介します。クラス名は、clsSequenceNumとします。 ●部門コード変数: クラス内のみで使用します。Private mBumonCode As String とします。 ●コンストラクタ: 部門コードを引数に指定します。引数の値を、mBumonCodeに設定します。 部門コードのレコードの存在をexistBumonメソッドで調べます。レコードが なければ、createSequenceNumメソッドを呼び出し、連番フィールドを0で初 期化して、1レコード追加します。 ●existBumonメソッド: 部門コードのレコードが連番生成テーブルに存在するか否かを調べるメソッ ドです。コンストラクタの中でしか呼び出されませんので、Privateにしま す。 ●createSequenceNumメソッド: 連番生成テーブルに1レコードを登録するメソッドです。コンストラクタの 中でしか呼び出されませんので、Privateにします。 ●getSequenceNumメソッド: 連番生成テーブルから連番を取得するメソッドです。外部から呼び出されま すので、Publicにします。戻値は、文字列にします。連番を00123とすれば、 部門コード="001"の時、戻値は"00100123"になります。 部門コード="A01"の時、戻値は"A0100123"になります。 では、クラスをテストするための新規プロジェクトをひとつ作成します。 ツールボックスから、次のコントロールを貼り付け、プロパティを設定します。 ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ TextBox1 Button1 Label1 ┃┌―――――┐ ┌――――┐ ┌―――――┐ ┃└―――――┘ │連番取得│ └―――――┘ ┃ └――――┘ ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━┛ コントロール プロパティ 設定値 ---------------------------------------------- TextBox1 Text "" BorderStyle Fixed3D Button1 Text 連番取得 Label1 Text "" BorderStyle FixedSingle TextBox1に、部門コードを入力し、Button1を押すと、Label1に取得した番号が 表示されます。Button1を続けて押すと、Label1の連番部分が+1されて表示さ れるのが確認できます。 連番の生成は、クラスfrmSequenceNum内で例外をThrowしますので、 Try 〜 Catch 〜 End Tryブロックで囲みます。 今回は、クラスをテストするプログラムソースリストを掲載します。 連番生成クラスのソースリストは、次号からの掲載となります。 ご了承ください。 --【プログラムソースリスト】------------------------------------------ Imports System.Data.OleDb Public Class frmSequenceNum Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " '自動生成部分省略 #End Region Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim oRenban As clsSequenceNum Dim bumonCode As String Dim strSequenceNum As String Try bumonCode = Me.TextBox1.Text oRenban = New clsSequenceNum(bumonCode) strSequenceNum = oRenban.getSequenceNum() If strSequenceNum = "" Then MessageBox.Show("連番が取得できませんでした", "エラー") Else Me.Label1.Text = strSequenceNum End If Catch oExcept As Exception '例外が発生した時の処理 MessageBox.Show(oExcept.Message, "エラー") End Try End Sub End Class ---------------------------------------------------------------------- ■■ 次号予告:第11号(7月23日頃発行予定) ■■ 1. VB.NETワンポイント 2. 部門単位で自動連番を生成するクラスの作成2 ====================================================================== VB.NET データベースプログラミング奮闘記 第10号(2004.7.9) 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.