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