DNN Dal + - 检索单个信息类集合项(vb.NET)

时间:2010-12-30 13:12:25

标签: vb.net collections find contains dotnetnuke

我似乎无法找到任何有用的答案。这是设置:

信息类:

Public Class ProductStageInfo

    Private _ProductNumber As String
    Private _ProductReference As String

    Public Sub New()
    End Sub

    Public Property ProductNumber() As String
        Get
            Return _ProductNumber
        End Get
        Set(ByVal Value As String)
            _ProductNumber = Value
        End Set
    End Property

    End Class

等等;我在info类中有四个类声明,上面的一个有十五个不同的项目 - 产品编号,产品参考,产品名称等等。另一个是目录分类,产品生产的“阶段”,质量保证问题;等

然后在DNN的Controller类中,我通过查询将各种信息类填充到部署的数据库DNN上;例如:

       Public Shared Function LoadStages(ByVal ProductNumber As String) As List(Of ProductStageInfo)
        Return CBO.FillCollection(Of ProductStageInfo)(CType(DataProvider.Instance().ExecuteReader("Product_LoadStages", ProductNumber), IDataReader))
    End Function

并且到目前为止一切正常,我可以使用<%#DataBinder.Eval(Container.DataItem,“ProductNumber”%>和后面的代码填充数据列表:

  Dim ProductStageList As List(Of ProductStageInfo)

            ProductStageList = ProductController.LoadStages(ProductNumber)

            ProductStageDataList.DataSource = ProductStageList
            ProductStageDataList.DataBind()
到目前为止,非常好......

但现在我需要允许个人“创造”阶段,其中一项业务需求是人们不应该在包装阶段之前创建一个交付阶段。

那么,我如何在一个集合中“找到”产品编号,产品参考,阶段编号?我以为我可以用某个产品编号的所有阶段填充集合,然后执行if / then stage = 0 found,stage> 5找到等等。

If ProductStageList.Contains(strProductNumber) then

end if

给出string类型的错误值,不能转换为namespace.ProductStageInfo;对于ProductStageList.Find ...

也是如此

也许我只是不了解整个集合/索引/事物。我发现的所有示例都是关于单维集合 - “如何在此集合中查找名称”,并且响应使用字符串来搜索它们,但不知何故Info类的处理方式不同,我不知道如何翻译这个......

任何提示,技巧,建议,教程....欣赏它:)

谢谢!

1 个答案:

答案 0 :(得分:0)

很确定我刚刚通过审查另一个模块找到答案;基本上我需要创建一个空对象而不是同一个类的列表对象,并使用这两个来迭代使用for / each等。

        Dim objStages As ProductStagesInfo
        Dim intStages, StageSelected As Integer
        Dim intStageOption As Integer = -1
        Dim blnValid As Boolean = True
        Dim ProductChosen As String = lblStagesCNHeader.Text
        Dim ProductStageList As List(Of ProductStagesInfo) = ProductController.LoadStages(ProductChosenNumber)

        For intStages = 0 To StageList.Count - 1
               objStages = StageList(intStages)
                 intStageOption += 1

                Select objStages.StageSetNumber
                      Case "0"

                Next

objStages。 _ 让我能够获取做业务逻辑所需的数据

<。<

一看到它就显得如此简单,希望我能将它全部存放在我的大脑中

嗒嗒!