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