1

アレイの問題をどのように進めればよいか、少しわからないという簡単な質問です。

基本的に、いくつかのコース カテゴリを出力するストアド プロシージャがあり、すべての行を配列に渡したいと考えています。

Subject            SubjectCode

Applied Science    F04
Access to HE       F05

基本的に、上記はストアド プロシージャから取得したものの例であり、サブジェクトの結果を配列に渡したいと思います。

Dim num as Integer
Dim strNumResult as String

num = 0

Do While (rsData.Read())

num = num + 1

strNumResult = num.ToString()

Dim array(strNumResult) as String

loop

最初にプロシージャ内の行数を数えてから、この結果を配列に入れる必要があると思いますか? 次に、手順内のすべてのサブジェクトを配列に体系的に取り込むにはどうすればよいでしょうか?

ありがとう!

4

2 に答える 2

1

最も簡単なのは、List(Of Subject)サイズを変更できる代わりに a を使用することです。2 つのフィールドがあるため、件名のクラスも作成します。

Dim subjects = New List(Of Subject)
Using con = New SqlConnection(connectionString)
    Using cmd = New SqlCommand("StoredProcedureName", con)
        cmd.CommandType = CommandType.StoredProcedure
        Try
            con.Open()
            Using reader = cmd.ExecuteReader()
                While reader.Read
                    Dim subject = reader.GetString(0)
                    Dim subjectCode = reader.GetString(1)
                    subjects.Add(New Subject() With {
                                 .Subject = subject,
                                 .SubjectCode = subjectCode
                             })
                End While
            End Using
        Catch ex As Exception
            ' log exception 
        End Try
    End Using
End Using

そのクラスの簡単な実装を次に示します。

Public Class Subject
    Public Subject As String
    Public SubjectCode As String
End Class

配列が必要な場合は、 を呼び出すことができますsubjects.ToArray()

于 2012-10-12T11:18:24.500 に答える
0

GetRowsレコードセットデータを配列に取り込むメソッドが必要です。

array = recordset.GetRows(Rows, Start, Fields )

基本的にストアドプロシージャを実行し、結果が得られたら、一意の列IDの配列を指定して、結果から行のコレクションを返すGetRowsメソッドを使用します。

ここで例を見ることができます。

あなたの場合、あなたがいくつかの記録を返したことを確認した後、あなたはこれをすることができます:

arrData = rsData.GetRows()

お役に立てれば。

于 2012-10-12T11:06:58.670 に答える