- - PR -
クラス内のFunctionプロシージャにて配列を使用する
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-21 12:52
こんにちは。いつも参考にさせていただいています。
DBの値を取得して、フォーム上のコンボボックスに表示させるsubプロシージャがあるのですが、繰り返し使用するために、クラスにしようと考えています。 クラス内にFunctionプロシージャをつくり、SQLの条件に合致した値をデータリーダーに格納し、ループさせることまでは出来ているのですが、メンバ変数を配列にしたり、getプロシージャにて呼び出し元に戻す方法が分かりません。 どなたかヒントをお教えいただけないでしょうか? | ||||||||||||
|
投稿日時: 2006-06-21 12:59
その、「配列にできないメンバ変数」の定義を教えてください。 | ||||||||||||
|
投稿日時: 2006-06-21 13:44
文字列の配列だと仮定して、配列であれば、
でしょうし、コレクションであれば、
ですよね。 適宜置き換えてみてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-06-21 18:04
一郎さま、じゃんぬねっとさま。レスありがとうございます。
メンバ変数は、Private strHinmei As Stringと宣言しています。 一郎さまの「定義」とはどのようなことでしょうか。(スイマセン) また、じゃんぬねっとさまのご指摘のように、文字列の配列であります。 Public Function GetStringArray() As String() dim rs as OleDbDataReader (rs格納部分は省略) While rs.Read() strHinmei = rs!品名 End While End Function 上記のようなコードなのですが、rs(データリーダー)に格納したデータが複数あるのですが、上記のコードですと1つしかstrHinmeiに代入できないため、配列を使おうと思ったのですが、その際にどのようにすればよいかで迷っております。 因みに、strHinmeiの値は、getプロシージャにて呼び出し元に返しております。 | ||||||||||||
|
投稿日時: 2006-06-21 18:10
strHinmeiをArrayListにするのが一番簡単かと。
Functionの戻り値にする場合は return directcast(strHinmei.ToArray(gettype(string)), string()) | ||||||||||||
|
投稿日時: 2006-06-21 18:11
まことに失礼ながら質問してくるようなレベルじゃないような気がする・・・ とりあえず。基礎は勉強しようぜ。な! http://www.google.co.jp/search?hl=ja&q=VB.NET+%E9%85%8D%E5%88%97&lr= | ||||||||||||
|
投稿日時: 2006-06-22 10:38
burton999さん、レスありがとうございます。
strHinmeiをarraylistにし、 while rs.read() strHinmei(rs!品名) end while で、格納はできたのですが、 return directcast(strHinmei.ToArray(gettype(string)), string()) で、 「キャストは有効ではありません」とのエラーが出てしまいました。 これは呼び出し側の問題でしょうか。 | ||||||||||||
|
投稿日時: 2006-06-22 10:46
ArrayListに格納した、適切な型にキャストしてください。
というよりも、ぶさいくろう氏がおっしゃっているように基礎を勉強しましょう。 |