バックナンバー:VB.NETデータベースプログラミング
ADO.NETの基本的なプログラミングを中心に、すぐ使えるサンプルプログラム満載です。
【第9号】
第9号(2004.6.25発行) ====================================================================== ★★ VB.NETデータベースプログラミング奮闘記 ★★ ---------------------------------------------------------------------- ADO.NETの基本的なプログラミングを中心に掲載します。 末永くご購読の程よろしくお願い申し上げます。 すぐ使えるADO.NET --> サンプル満載 http://park5.wakwak.com/‾weblab/ ====================================================================== -----【目次】----- 1. VB.NETワンポイント:Property・Get・Set 2. ListBox:DataSourceにArrayListオブジェクトを設定して名称表示 3. 次号予告 ---------------------------------------------------------------------- ■■ VB.NETワンポイント:Property・Get・Set ■■ Privateな変数mCodeと、その変数に値を設定するコンストラクタ、mCodeの値 を取得するgetCodeメソッド、mCodeの値を変更するsetCodeメソッドを持った クラスclsSample1を作成します。 Public Class clsSample1 Private mCode As String Public Sub New(ByVal paraCode As String) mCode = paraCode End Sub Public Function getCode() As String Return mCode End Function Public Sub setCode(ByVal paraCode As String) mCode = paraCode End Sub End Class mCodeの値の設定はコンストラクタで行います。 Dim obj1 As New clsSample1("abc") getCodeメソッドで、設定した値を取得します。 Trace.WriteLine("設定値確認:clsSample1のmCode = " + obj1.getCode()) 値の変更はsetCodeメソッドを使います。 obj1.setCode("12345") getCodeメソッドで変更値を確認しています。 Trace.WriteLine("変更値確認:clsSample1のmCode = " + obj1.getCode()) VB.NETでは、getCodeメソッド、setCodeメソッドと同様な動作を、Property ステートメント、Getプロパティプロシージャ、Setプロパティプロシージャを 使って実現することができます。クラスclsSample2は、クラスclsSample1を書 き換えたクラスです。 Public Class clsSample2 Private mCode As String Public Sub New(ByVal paraCode As String) mCode = paraCode End Sub Public Property code() As String Get Return mCode End Get Set(ByVal paraCode As String) mCode = paraCode End Set End Property End Class mCodeの値の設定は、Getプロパティプロシージャを呼び出し、値の変更は、 Setプロパティプロシージャを呼び出します。記述はドット演算子を使って、 obj2.codeのようにします。 Dim obj2 As New clsSample2("abc") Trace.WriteLine("設定値確認:clsSample2のmCode = " + obj2.code) obj2.code = "12345" Trace.WriteLine("変更値確認:clsSample2のmCode = " + obj2.code) ---------------------------------------------------------------------- ■■ ListBox:DataSourceにArrayListオブジェクトを設定して名称表示 ■■ リストボックスListBox1に、すべての元号名を表示する。表示した元号名をひ とつ選択できるようにする。元号名をクリックしたら、その元号コードをラベ ルlblgengoCodeに表示する。下表の元号コードと元号名をプログラム内で、 ArrayListオブジェクトに登録する。 元号コード 元号名 --------------------- 1 明治 2 大正 3 昭和 4 平成 最初に、新規プロジェクトをひとつ作成してください。ツールボックスから、 次のコントロールを貼り付け、プロパティを設定します。 ┏━━━━━━━━━━━━━━━━━━━┓ ┃ ListBox1 Label1 ┃┌―――――┐ ┌―――――┐ ┃│ │ │元号コード│ ┃│ │ └―――――┘ ┃│ │ lblgengoCode ┃│ │ ┌――――┐ ┃└―――――┘ └――――┘ ┗━━━━━━━━━━━━━━━━━━━┛ コントロール プロパティ 設定値 -------------------------------------------- ListBox1 --- --- Label1 Text 元号コード lblgengoCode Text "" BorderStyle FixedSingle 前号では、リストボックスに名称を表示するために、DataAdapterオブジェク トのFillメソッドを使って、DataSourceプロパティにデータセットを設定しま したが、今回は、DataSourceプロパティにArrayListオブジェクトを設定しま す。 まず、元号コードと元号名を登録するクラスclsGengoを作成します。元号コー ドと元号名は、コンストラクタで設定します。リストボックスに元号名を表示 するためにプロパティgengoNameを、選択した元号の元号コードを取得するた めにプロパティgengoCodeを定義します。いずれのプロパティも読取専用とし て、ReadOnlyキーワードを付け、Getプロパティプロシージャのみ定義します。 Public ReadOnly Property gengoCode() As String Get Return mGengoCode End Get End Property リストボックスには、元号名を表示するために、DisplayMemberプロパティに、 クラスclsGengoのプロパティ名"gengoCode"を、選択した元号の元号コードを 取得するために、ValueMemberプロパティにクラスclsGengoのプロパティ名 "gengoCode"を設定します。また、DataSourceプロパティには、ArrayListオブ ジェクトを設定します。 Me.ListBox1.DisplayMember = "gengoName" Me.ListBox1.ValueMember = "gengoCode" Me.ListBox1.DataSource = gengoList SelectedIndexChangedイベントハンドラの中で、リストボックスの SelectedValueプロパティを参照すれば、クリックした元号名の元号コードを 取得することができます。 それでは、プログラムソースリストを掲載します。Option Strict Onにしてい ますので、異なるデータ型への代入には、注意して下さい。たとえば、 Me.lblgengoCode.Text = Me.ListBox1.SelectedValue は、 Me.lblgengoCode.Text = CStr(Me.ListBox1.SelectedValue) とします。 --【プログラムソースリスト】------------------------------------------ Option Strict On Public Class form1 Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " '自動生成部分省略 #End Region Private Sub form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load '元号コードと元号名を登録するArrayListを宣言 Dim gengoList As New ArrayList() 'ArrayListに元号コードと元号名称を追加 gengoList.Add(New clsGengo("1", "明治")) gengoList.Add(New clsGengo("2", "大正")) gengoList.Add(New clsGengo("3", "昭和")) gengoList.Add(New clsGengo("4", "平成")) 'リストボックスに名称を表示できるようにする Me.ListBox1.DisplayMember = "gengoName" 'リストボックスで選択した名称に対応したコードを取得できるようにする Me.ListBox1.ValueMember = "gengoCode" 'リストボックスとArrayListデータを連結する Me.ListBox1.DataSource = gengoList '平成を既定値として選択 Me.ListBox1.SetSelected(3, True) End Sub Private Sub ListBox1_SelectedIndexChanged _ (ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles ListBox1.SelectedIndexChanged '選択した元号コードをラベルに表示 Me.lblgengoCode.Text = CStr(Me.ListBox1.SelectedValue) End Sub End Class '----------【元号コードと元号名を登録するクラス】---------- Public Class clsGengo Private mGengoCode As String Private mGengoName As String Public Sub New(ByVal gengoCode As String, ByVal gengoName As String) mGengoCode = gengoCode mGengoName = gengoName End Sub Public ReadOnly Property gengoCode() As String Get Return mGengoCode End Get End Property Public ReadOnly Property gengoName() As String Get Return mGengoName End Get End Property End Class ---------------------------------------------------------------------- ■■ 次号予告 ■■ 第10号(7月9日頃発行予定) 1. VB.NETワンポイント 2. 部門単位で自動連番を生成するクラスの作成 ====================================================================== VB.NET データベースプログラミング奮闘記 第9号(2004.6.25) 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」ホームページに掲載されて いる会社名・製品名等は、各社の登録商標または商標です。 ======================================================================
▲このページ先頭へ | すぐ使えるADO.NET ホームへ
Copyright© すぐ使えるADO.NET. All rights reserved.