- PR -

構造体からクラスで配列が・・・

1
投稿者投稿内容
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-09-10 16:13
こちらの「スキル創造研究室」の構造体からクラスへの
あたりをじっくり読んで勉強させていただいております。

VB6の時に作ったプログラムで
マスタテーブルから構造体の配列へ読み込み
他のプロシージャで利用というのがあるのですが
これをクラス化しようと研究中です。


具体的には、標準モジュールで
---------------------------
Public Type 構造体
項目(10) As String
End Type
----------------------------
と宣言して、フォームで
----------------------------
Private Sub Form_Load()
Dim x As 構造体
ループ はじまり
構造体.項目(カウンタ)=レコードセット
ループ 終わり
End Sub
----------------------------
といった感じです

これをクラス化する第1段階として
プロパティを作りました。
次にインスタンスを作成するときに
Public インスタンス名(10) As New クラス名
として
とりあえず読み込みサンプルとして1件だけ
読み込んでみようと、次のようにしました
---------------------------------------------
Dim oCmd As OdbcCommand
Dim oRd As OdbcDataReader
cn.Open()
oCmd = cn.CreateCommand
oCmd.CommandText = "SELECT * FROM テーブル名"
oRd = oCmd.ExecuteReader
oRd.Read()
インスタンス名(0).プロパティ = oRd("フィールド名")
------------------------------------------------
やりたいのは、こういった
データ読み込みなどのメソッドを作成したいのですが。

データは複数件あるので、ループ処理が必要。
ループ処理をさせて読み込ますためには配列が必要
でもプロパティに配列は・・・・あれ・・・
みたいな感じで頭が混乱しています><

データベース読み込みクラス?のようなもの(サンプル)があれば
教えていただけないでしょうか?参考サイトなどでもいいです。
よろしくお願いします。


[ メッセージ編集済み 編集者: バニラミント 編集日時 2005-09-10 16:14 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-09-10 16:32
引用:

データは複数件あるので、ループ処理が必要。
ループ処理をさせて読み込ますためには配列が必要
でもプロパティに配列は・・・・あれ・・・
みたいな感じで頭が混乱しています><

データベース読み込みクラス?のようなもの(サンプル)があれば
教えていただけないでしょうか?参考サイトなどでもいいです。
よろしくお願いします。



要するに、可変長のデータを同扱うべきかという問題ですね。

VB なら Redim で配列の長さを動的に変更できるので、それを使うのも手です。

あるいは、System.Collections 名前空間配下の ArrayList クラスあたりを使えば、より汎用的な解となると思います。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-09-10 16:48
引用:

VB6の時に作ったプログラムで
マスタテーブルから構造体の配列へ読み込み
他のプロシージャで利用というのがあるのですが
これをクラス化しようと研究中です。



型付きDataSetを使うのが手っ取り早いです。
あるいは、自前で実装するという話ですか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-10 16:50
ArrayList を継承したコレクション クラスを作るとか...


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-09-10 17:11
みなさまレスありがとうございました。
DataSetについては理解していたつもり
だったのですが><;
教えていただいたDataSetとArrayListについて
もっと勉強いたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-09-12 21:22
引用:

ArrayList を継承したコレクション クラスを作るとか...


好みの問題ですが、CollectionBase から継承する方が好きです。。。なんとなく。。。

_________________
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-09-13 09:07
引用:

Jittaさんの書き込み (2005-09-12 21:22) より:
引用:

ArrayList を継承したコレクション クラスを作るとか...


好みの問題ですが、CollectionBase から継承する方が好きです。。。なんとなく。。。


好みの問題ですが、ICollection をインプリメントして、内部的に ArrayList を使用する方が好きです。公開したくない親クラスのメンバを隠蔽するのが面倒だったりするので…。
1

スキルアップ/キャリアアップ(JOB@IT)