0

我正在尝试使用以下代码填充下拉列表。我可以看到数据表中的值,但下拉列表仅显示我加载的 2 个值(空文本和“不适用”。

'Fill method call
Dim ECPDropDownList As DropDownList = CType(e.Item.Cells(Me.ECPColumnIndex).Controls(1), DropDownList)
fillECPDDL(ECPDropDownList, customerNumber)

'填充方法

Private Sub fillECPDDL(ByVal ddlECP As DropDownList, ByVal customernumber As String)
        Dim founries As DataTable = SOTSOrderAccess.getAllECP(customernumber)
        ddlECP.DataTextField = "ECP_Name"
        ddlECP.DataValueField = "ECP_ID"


        ddlECP.Items.Clear()
        Dim emptyECP As New ListItem
        emptyECP.Text = ""
        emptyECP.Value = ""
        ddlECP.Items.Add(emptyECP)
          

        For Each item As DataRow In founries.Rows
            ddlECP.Items.Add(New ListItem(item("ECP_Name").ToString, item("ECP_ID").ToString))
        Next
End Sub

'函数调用从数据库中获取值

Function getAllECP(ByVal customernumber As String) As DataTable
        Using cnn As New SqlConnection(ConfigurationManager.AppSettings("db.connectString"))
            'Need stored procedure to fetch End Customer Project
            Using cmd As New SqlCommand("SOTS_sel_ECP", cnn)
                Using adp As New SqlDataAdapter(cmd)
                    Dim dt As New DataTable
                    cmd.Parameters.Add(New SqlParameter("@AX_Customer_Number", customernumber))
                    cmd.CommandType = CommandType.StoredProcedure
                    adp.SelectCommand = cmd
                    adp.Fill(dt)
                    Return dt
                End Using
            End Using
        End Using
    End Function
4

1 回答 1

0

检查您是否从 getAllECP() 获取数据作为数据库的结果,

尝试以这种方式传递参数,

cmd.Parameters.Add("@AX_Customer_Number", SqlDbType.NVarChar).Value = customernumber;

于 2020-07-07T06:59:09.160 回答