- PR -

クラス内のFunctionプロシージャにて配列を使用する

投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-22 10:54
return 先も配列になっているのでしょうか・・・
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-22 11:19
引用:

モンジさんの書き込み (2006-06-21 18:04) より:

また、じゃんぬねっとさまのご指摘のように、文字列の配列であります。

Public Function GetStringArray() As String()

dim rs as OleDbDataReader

(rs格納部分は省略)

     While rs.Read()
strHinmei = rs!品名
End While
  
End Function

上記のようなコードなのですが、rs(データリーダー)に格納したデータが複数あるのですが、上記のコードですと1つしかstrHinmeiに代入できないため、配列を使おうと思ったのですが、その際にどのようにすればよいかで迷っております。



じゃんぬねっとさんのサンプルコードに答えが載っていますよ(^^)

引用:

じゃんぬねっとさんの書き込み (2006-06-21 13:44) より:

コード:

    Public Function GetStringArray() As String()
        Dim returnStrings As String()
          :
          :
        Return returnStrings
    End Function




一旦、文字列配列の変数を定義して、そこに出力したものを Return しています。
モンジ
ベテラン
会議室デビュー日: 2005/09/06
投稿数: 85
投稿日時: 2006-06-23 14:32
皆様、いろいろアドヴァイスありがとうございました。
Web上のTipsを参考にして、Collectionを使うことで解決できました。

「もっとよいコーディングがある」という方がいらっしゃいましたら、
ご教授お願いします。

Public Class Form1

Dim rs as OledbDataReader

'DRクラスのインスタンス化
Dim HDC asn New clsHinDR
rs = HDC.GetDR(引数)

Dim List as New Collection

While rs.read()
List.Add(New clsCollection(rs!品名))
End While

For Each Parts As clsCollection In List
Me.cbxHinmei.Items.Add(Parts.Name)
Next

End Class

Public Class clsHinDR

Function GetDR(引数)as OleDbDataReader

(省略) SQL

Return oCmd.ExecuteReader()

End Function
End Class

Public Class clsCollection

Public Name As String

Sub New(ByVal Str As String)
Me.Name = Str
End Sub
End Class
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-23 14:41
HDCってデバイスコンテキストへのハンドル(hDC)っぽく見えちゃうよねw
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-06-23 17:25
引用:

モンジさんの書き込み (2006-06-23 14:32) より:

「もっとよいコーディングがある」という方がいらっしゃいましたら、


もっとよいコーディングを求めるのも良いですが、もっとよい投稿の仕方として、BBコードを活用して、コードを括るというものがあります。

http://www.atmarkit.co.jp/bbs/phpBB/faq-japanese.php#bbcode

ちなみに、僕ならデータバインディングを使います。

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