2013-03-14 4 views
0

내 코드에는 데이터베이스에서 단일 행의 데이터를 반환하는 함수가 있습니다. Structure을 사용하여 데이터를 반환하므로 둘 이상의 데이터를 반환 할 수 있습니다. 예를 들어함수가 둘 이상의 데이터 행을 반환 할 수 있습니까?

:

Public Structure structure_name 
    Public column1 as integer 
    Public column2 as string 
    Public column3 as string 
End Structure 

Function function_name() As structure_name 
    Dim single_row_structure as structure_name 

    'get single row from database 
    'assign single row values to attributes of Structure 

    single_row_strucure.column1 = dbcol1 
    single_row_strucure.column2 = dbcol2 
    single_row_strucure.column3 = dbcol3 

    return single_row_strucure 
End Function 

이 하나의 행에 대해 잘 작동합니다. 내 질문은, 어떻게 데이터를 하나 이상의 행을 반환하는 함수를 얻을 수 있습니까?

+0

같은 컬렉션을 사용하기 때문에? – Alex

+0

'function_name() structure_name()'이 작동해야합니까? – jgauffin

답변

1
Function function_name() As structure_name() 

    Dim rows(2) as structure_name 
    rows(0).column1 = dbcol1 
    rows(0).column2 = dbcol2 
    rows(0).column3 = dbcol3 
    rows(1).column1 = dbcol1 
    rows(1).column2 = dbcol2 
    rows(1).column3 = dbcol3 

    return rows 
End Function 

http://www.vb-helper.com/howto_net_declare_arrays.html

+0

행 개수가 데이터베이스에서 반환 된 행 수를 기준으로 변경되지만 function_name() 외부에서 반환 된 구조체 배열을 사용하려면 어떻게 변경하는지 이해합니다. 행 수가 데이터베이스에서 반환 된 행의 양에 의해 결정된 경우? – oshirowanen

0

예, 일부 컬렉션을 반환 할 수 있습니다. 태그가 .NET의 첫 번째 버전을 사용 중이라고 제안 할 때 구문 옵션이 약간 제한 될 수 있습니다. (1.1 - 그게 사실인가요?)

.NET과 C#의 최신 버전을 사용하면 List<structure_name>을 반환 할 것입니다. 그러나 다른 많은 옵션이 있습니다.

데이터베이스에서 데이터를 가져 오는 한, 데이터베이스는 여러 행을 반환하는 데 매우 적합합니다. 그러나 C# 컬렉션으로 전송하는 방법에 대한 제안을하려면 데이터베이스를 얻는 방법과 데이터베이스에 대한 자세한 정보를 제공해야합니다.

0

죄송합니다 오랜만 당신이 행의 컬렉션을 반환 할 수없는 이유 VB는 그래서 C#

이 왜 목록

List<structure_name> structure_names = new List<structure_name>(); 

structure_names.Add(single_row_strucure); // repeat