如何在VB.NET中声明数据源?

时间:2011-06-22 14:37:56

标签: asp.net vb.net datasource

我在VB.NET中编写了一个ASPX文件。最初这个文件成功运行但是在添加一个额外的参数之后它现在在“名称'peType'未声明”时失败。

这个错误对我来说没有意义,因为我有类似的参数'dType',它没有错误。这个错误的原因是什么?

以下是我的一些ASPX代码文件:

    Sub Page_Load(Sender as Object, E as EventArgs)
        If Not IsPostback Then 

            Dim TheMonthDate As Date = DateAdd(DateInterval.Month, -1, Today)
            calStartDate.SelectedDate = CDate((TheMonthDate.Month) & "/1/" & Year(TheMonthDate)).ToString("MM/dd/yyyy")
            calEndDate.SelectedDate = GlobalFunctions.GlobalF.MonthLastDate(CDate((TheMonthDate.Month) & "/1/" & Year(TheMonthDate)).ToString("MM/dd/yyyy"))

            Dim arrType as New ArrayList()
            Dim arrOrgUnit as New ArrayList()
            Dim arrPEType as New ArrayList()
            Dim peType As ListBox

            arrType.Add("Product and Process")
            arrType.Add("Product")              
             arrType.Add("Process")                         
            dType.DataSource = arrType
            dType.DataBind()

            arrPEType.Add("-INC")
            arrPEType.Add("-NC")
            arrPEType.Add("-QC")
            peType.DataSource = arrPEType
            'peType.DataTextField = "DisplayColumnName"
            'peType.DataValueField = "ValueColumnName"
            peType.DataBind()
...
            Dim TheType as String
            Dim TheOrgUnit as String
            Dim PE_Type as String

            Select Case dType.SelectedValue
                Case "Product and Process": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PRODUCT_QXP' Or (SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PROCESS_QXP')"
                Case "Product": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PRODUCT_QXP')"
                Case "Process": 
                    TheType = "((SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION)='PXP_PROCESS_QXP')"
            End Select

            Select Case peType.SelectedValue
                Case "INC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='INC'"
                Case "NC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='NC'"
                Case "QC": 
                    PE_Type = "substring(a.QXP_EXCEPTION_NO, charindex('-', a.QXP_EXCEPTION_NO)+1, 4)='QC'"
            End Select
...
                    <td>
                        Product Exception Type:
                    </td>
                    <td>
                        <ASP:DROPDOWNLIST ID="peType" RUNAT="Server" AUTOPOSTBACK="true" />
                    </td>

但现在我的错误是: 对象引用未设置为对象的实例

1 个答案:

答案 0 :(得分:0)

当您尝试将DataTextField绑定到DataValueField时,您错过了设置DataSourceDropdownlist属性,因此设置如下:

peType.DataSource = arrPEType
peType.DataTextField = "DisplayColumnName"
peType.DataValueField = "ValueColumnName"
peType.DataBind()