VB.NET - 组合框项目数应基于数据库中的记录数

时间:2013-02-22 18:39:13

标签: vb.net

我在vb.net上遇到了问题。

我这里有一个程序连接到一个数据库,其中包含表id

上的字段(namequantitytbl_report

我的部分程序是删除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()

1 个答案:

答案 0 :(得分:0)

试试这个......

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.