一个函数可以返回超过1行的数据吗?

时间:2013-03-14 15:44:01

标签: asp.net .net vb.net .net-1.1 asp.net-1.1

在我的代码中,我有一个函数,它从数据库返回一行数据。它使用Structure返回数据,因此我可以返回多于1个数据。

例如:

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

这适用于单行。我的问题是,如何让函数返回超过1行的数据?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

是的,您可以返回某种类型的集合。您可能会对此语法选项略有限制,因为您的标记建议您使用的是.NET的第一个版本。 (1.1 - 这是真的吗?)

使用最新版本的.NET和C#,我将返回List<structure_name>。但是还有很多其他选择。

就从数据库中获取数据而言,数据库非常擅长返回多行。但是,您需要提供有关哪个数据库以及如何获取数据的更多详细信息,以便就如何将其传输到C#集合提出建议。

答案 2 :(得分:0)

很抱歉,自从VB以来C#

已经有一段时间了

为什么不使用像List这样的集合

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

structure_names.Add(single_row_strucure);  // repeat