在数据库中找不到记录时如何向下拉列表添加新项目

时间:2019-05-16 17:22:31

标签: c# asp.net vb.net

当在mysql数据库中找不到任何项目时,如何向下拉列表添加替代项目。

这就是我尝试过的

Sub getstudent()
        Try
            Dim val As String = System.Configuration.ConfigurationManager.ConnectionStrings("val").ConnectionString
            Using mycon As New MySqlConnection(val)
                Using ds As New DataTable
                    mycon.Open()
                    Dim SQL As String = "SELECT reg_no, name FROM tbl_students where class='" & Dpclass.SelectedItem.Text & "' and sub_class='" & Dpsub_class.SelectedItem.Text & "' and acad_session='" & acad_session.SelectedItem.Text & "'"
                    Dim myCommand As New MySqlCommand(SQL, mycon)
                    Dim myDA As New MySqlDataAdapter
                    myDA.SelectCommand = myCommand
                    myDA.Fill(ds)
                    mycon.Close()

                    Dpname.DataSource = ds
                    Dpname.DataTextField = "name"
                    Dpname.DataValueField = "reg_no"
                    Dpname.DataBind()
                    If Dpname.DataTextField < 1 Then
                        Dpname.Text = "Nothing Found"
                    End If
                    Dpname.Items.Insert(0, New ListItem("-select-", "0"))
                End Using
            End Using
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

我遇到错误:从字符串“ name”到类型“ Double”的转换无效。

3 个答案:

答案 0 :(得分:2)

检查您的数据表是否为空,并用另一个值填充它:

If ds.Rows.Count = 0 Then
    Dpname.DataSource = new DataTable()
End If

答案 1 :(得分:1)

我不确定这是答案,因为我不知道您正在使用的表的结构,但是从我所看到的以及给出的错误中可以看出,您正在将0作为字符串添加,并且期望出现双精度。尝试以下操作:

Dpname.Items.Insert(0, New ListItem("-select-", 0))

答案 2 :(得分:0)

我终于明白了,多亏了Mahdy Aslamy

If ds.rows.count  = 0 then
    Dpname.items.insert(0, New ListItem("No records Found", "0"))
Else
    Dpname.items.insert(0, New ListItem("-Select-, "0""))
End If