2011-12-18 8 views
0

私は、Accessデータベースから質問を取得し、その回答を別のAccessデータベースに保存する簡単なアプリケーションを作成しました。クライアントがどのくらい質問したいのか分からないので、その番号をハードコードすることはできません。Visual Basic 2010:同様の名前のプロパティを通した反復?

したがって、answersテーブルのカラム名(first、last nameなどのユーザ情報に加えて)は、a1、a2、a3 ... aNになります。

最後に問題です!今、私は「型」プロパティの数に基づいてすべてのプロパティを反復処理したい

newEntry.a1 = answers(0) 
newEntry.a2 = answers(1) 
newEntry.a3 = answers(2) 

'aCount is number of "a-type" properties 
For i = 0 To aCount - 1 
    Dim property As String 
    property = "a" & (i + 1) 
    newEntry.property = answers(i) 
Next 
私はこのような最初の3件の回答を保存するハードコードされているテストのため

もちろん、上記のコードは機能しません。これは、ハードコーディングされた例と同じ "擬似コード"のアイデアです。

このようにしてnewEntryオブジェクトの定義済みプロパティを反復処理できますか?

私の質問が十分にはっきりしたことを願っています。事前にどうもありがとうございました!

+1

ひどく壊れているdbaseテーブルデザインでもコードを破損させないでください。多分あなたは最初にテーブルを修正するべきです。 –

答えて

0

はい、リフレクションを使用している場合は、コレクションを使用して回答を保存する方がよいでしょう。

あなたがそれを行うことができます多くの方法が、

Dictionary<String,List<String>> would be an easy first choice then 

擬似コード

for(int index = 0; index<aCount; index++) 
{ 
    newEntries.Add["A"].Add(answers[index]); 
} 

はとてもA4は、単にnewEntriesある[ "A"] [3]。

関連する問題