0

在我的代码中,我有一个函数,它从数据库中返回单行数据。它使用 a 返回数据,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

这适用于单行。我的问题是,我如何获得一个返回多于 1 行数据的函数?

4

3 回答 3

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

于 2013-03-14T15:52:31.330 回答
0

是的,您可以返回某种集合。您的语法选项可能会受到一些限制,因为您的标签建议您使用的是 .NET 的第一个版本。(1.1 -- 这是真的吗?)

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

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

于 2013-03-14T15:46:13.813 回答
0

抱歉,自从 VB 以来已经有一段时间了,所以 C#

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

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

structure_names.Add(single_row_strucure);  // repeat
于 2013-03-14T16:08:11.840 回答