我的Visual Basic程序从Access数据库中提取值并将它们放在标签中。从数据库返回的数据取决于在组合框中选择的值,并且应该随着组合框值的变化而改变,但令我惊讶的是,标签只显示首先显示的值,即使它们必须更改。我尝试在每次访问数据库之前将标签文本分配给任何内容,但它仍然显示以前的值。这可能是什么问题,我无法让这些标签改变文字?请帮忙。这是我用来访问数据库并放在标签中的代码:
Me.p.Text = Nothing
Me.tq.Text = Nothing
Me.pd.Text = Nothing
Me.ba.Text = Nothing
Me.o.Text = Nothing
Me.pm.Text = Nothing
Me.tv.Text = Nothing
Me.tqr.Text = Nothing
Me.dff.Text = Nothing
Try
cmd.Connection = cnn
cmd2.Connection = cnn
cmd3.Connection = cnn
cmd.CommandText = "SELECT distinct(brought_price), sum(brought_qtty), sum(brought_paid), sum(brought_bal),recieved_qtty,sum(brought_qtty)-recieved_qtty, sum(brought_qtty)*brought_price from brought_coffee, farmer, centre_weigh " & _
"where brought_date=? and farmer_centre=? and" & _
" brought_coffee.farmer_num=farmer.farmer_num and weigh_date=? and weigh_centre=? and brought_coffee.brought_date=centre_weigh.weigh_date and farmer_centre=weigh_centre group by brought_price,recieved_qtty"
MessageBox.Show(Me.dtc.Text)
cmd.Parameters.Add("@dt", OleDb.OleDbType.Date).Value = Me.dtc.Text
cmd.Parameters.Add("@dt2", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)
cmd.Parameters.Add("@dt3", OleDb.OleDbType.Date).Value = Me.dtc.Text
cmd.Parameters.Add("@dt4", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)
cmd2.CommandText = "SELECT sum(brought_qtty) from brought_coffee,farmer where coffee_grade='O' and brought_date=? and farmer_centre=? and" & _
" brought_coffee.farmer_num=farmer.farmer_num"
cmd2.Parameters.Add("@dt5", OleDb.OleDbType.Date).Value = Me.dtc.Text
cmd2.Parameters.Add("@dt6", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)
cmd3.CommandText = "SELECT sum(brought_qtty) from brought_coffee,farmer where coffee_grade='P' and brought_date=? and farmer_centre=? and" & _
" brought_coffee.farmer_num=farmer.farmer_num"
cmd3.Parameters.Add("@dt7", OleDb.OleDbType.Date).Value = Me.dtc.Text
cmd3.Parameters.Add("@dt8", OleDb.OleDbType.VarChar).Value = Me.cc.Text.Trim.Substring(0, 2)
myData = cmd.ExecuteReader
myData2 = cmd2.ExecuteReader
myData3 = cmd3.ExecuteReader
'MessageBox.Show("check 1")
While myData.Read()
'MessageBox.Show("check 1")
Dim pr As String = myData(0).ToString
Dim qtty As String = myData(1).ToString
Dim pd As String = myData(2).ToString
Dim bl As String = myData(3).ToString
Dim rq As String = myData(4).ToString
Dim dq As String = myData(5).ToString
Dim tvp As String = myData(6).ToString
'MessageBox.Show("quantity" & pr)
Me.p.Text = pr
Me.tq.Text = qtty
Me.pd.Text = pd
Me.ba.Text = bl
Me.tqr.Text = rq
Me.dff.Text = dq
Me.tv.Text = tvp
End While
myData.Close()
While myData2.Read()
Dim od As String = myData2(0).ToString
'MessageBox.Show(od)
Me.o.Text = od
End While
myData2.Close()
While myData3.Read()
Dim pmm As String = myData3(0).ToString
Me.pm.Text = pmm
End While
myData3.Close()
cnn.Close()
dtc
和cc
是与所选