访问我的Class并在表示层上显示输出

本文关键字:显示 输出 表示层 我的 Class 访问 | 更新日期: 2023-09-27 17:53:20

我已经编写了一个类来运行存储过程,启动数据读取器并将内容放入数组列表中。

类代码
public class GHPSlider
{
    private clsDbAccess _db;
    private clsDbAccess _tmpDb;
    public ArrayList getBanners(int thisBannerType)
    {
        ArrayList HeroBanners = new ArrayList();
        SqlDataReader _dr = null;
        SqlCommand cmd = _db.Command;
        if (_db.Connection.State == ConnectionState.Closed)
        {
            _db.Connection.Open();
        }
        cmd = _db.Command;
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "GetGHPSlides";
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@ID", thisBannerType);
        _dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        if (_dr.HasRows)
        {
            while (_dr.Read())
            {
                object[] values = new object[_dr.FieldCount];
                _dr.GetValues(values);
                HeroBanners.Add(values);
            }
        }
        _dr.Close();
        return HeroBanners;
    }
}

在我的代码后面,我试图访问数组列表,以便我可以通过它循环并输出代码到表示层。我对n层编程方式相当陌生,可能需要一些帮助来引导我走向正确的方向。

Public Function GetHeros() As String
    Dim thisTestSubject As ArrayList = New GHPSlider.getBanners(1)
    'Loop through thisTestSubject ArrayList and place into HTML string to pass to literal or label
    thisBannerSlideBuilderHTML = "<div style='z-index:0;background-color:#FFF;'><a href='" + thisBannerSlideURL.ToString() + "' onclick='RecordBannerClick(this, 'Hero', 'GHP', '" + thisBannerSlideTitle.ToString() + "');'><img alt='" + thisBannerSlideTitle.ToString() + "' src='" + thisBannerSlideImagePath.ToString() + "' /></a></div>";
    'Place Inside Literal or Label to display to presentation layer
End Function
如果有人能给我指出正确的方向,那就太好了!

访问我的Class并在表示层上显示输出

如果您无法访问您所拥有的类,您将需要实例化它。例如,

GHPSlider slider = new GHPSlider(); 

从这里,你可以用

访问属性和方法。
slider.getBanners();

你目前使用的代码是相当神秘的,我不确定你用它来做什么,所以它可能是可行的。但是,您可能想要阅读一些关于分层程序的内容,它将帮助您在心理上组织这些内容。我知道你没有真正的数据层,但是阅读数据访问层可能会帮助你理解它背后的架构。


我只能从c#的角度提供帮助,但是你可以把它移植过来。

对于遍历数组的值,这实际上取决于目的。在简单的编码中,假设您有一个包含十个值的数组。通过将它们传递给另一个命令,使用for循环迭代它们将使您获得每个值。

int[] array = new int[p];
        for (int i = 0; i < p; i++)
        {
            array[i] = i;
            Console.WriteLine(array[i]);
        }

它的输出是一个0-9的计数。

帮助使用数组!

现在,更具体地说,ArrayList

我知道你正在使用较旧的代码,因此,ArrayList,但与for循环的值的迭代可能是你最好的选择。