【问题标题】:VB.NET - Number of Combobox Items should be based on the number of records in the databaseVB.NET - 组合框项的数量应基于数据库中的记录数
【发布时间】:2013-02-22 18:39:13
【问题描述】:

我在vb.net 遇到问题。

我在这里有一个程序连接到一个数据库,该数据库在表tbl_report 上具有字段(idnamequantity

我的程序的一部分是删除ID 等于cbOrderNo 的选定项的记录

cbOrderNo 的项目是表中的 ID。所以当一条记录被删除时,cbOrderNo的项应该会被扣除。

例如,表中有 4 条记录,因此在表单加载期间,cbOrderNo 中将有 4 条记录,当用户在组合框中选择 1 条记录时,将删除一条记录,因此将删除 3 条记录在cbOrderNo中留下3个项目

我的程序所做的是,在剩下 3 条记录后,组合框中仍然会有 4 项。我想要的是在那里只显示 3 个项目。

Dim qryDelete As String = "DELETE FROM tbl_report WHERE ID=" & cbOrderNo.SelectedItem & ""
ExecNonQuery(qryDelete)
MsgBox("Record Deleted")
query.Close()

cbOrderNo.Items.Clear()
cmd.CommandText = "SELECT * FROM tbl_report ORDER BY ID"
cmd.Connection = con
Dim rdrOLEDB As OleDbDataReader = cmd.ExecuteReader
While(rdrOLEDB.Read())
     cbOrderNo.Items.Add(rdrOLEDB.GetValue(0))
    MsgBox(cbOrderNo.Items.Count)
End While
MsgBox(cbOrderNo.Items.Count)
cbOrderNo.SelectedIndex = 0
rdrOLEDB.Close()

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    试试这个...

    Dim qryDelete As String = "DELETE FROM tbl_report WHERE ID=" & cbOrderNo.SelectedItem & ""
    ExecNonQuery(qryDelete)
    MsgBox("Record Deleted")
    query.Close()
    
    cbOrderNo.Items.Remove(cbOrderNo.SelectedItem) 'there is no point in recalling the database, just remove it from the list.
    

    【讨论】:

    • 哇!我没有考虑过这样做。谢谢阿普罗。它奏效了。
    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多