我已经和MsgBox一起检查了,我的值正在从组合框中改变但是我只获得了第一个记录总数,例如如果我从combobx选择thinkpad然后它将显示我16,000美元,但当试图从combox改变thinkpad到yogapad它工作正常,因为我得到2号作为组合框的值,但我看到没有chang ein 16,000美元。这是我的代码
Public Class Total_Amount_Report
Private Sub Total_Amount_Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sql = "SELECT * FROM pt_funds"
Dim da As New OleDb.OleDbDataAdapter(sql, con)
da.Fill(ds, "TotalAmounts")
ComboBox1.DataSource = ds.Tables("TotalAmounts")
ComboBox1.DisplayMember = "Project Name"
ComboBox1.ValueMember = "ID"
End Sub
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sql2 As String
sql2 = "SELECT * FROM pt_funds WHERE ID=" & ComboBox1.SelectedValue & " "
MsgBox(ComboBox1.SelectedValue, MsgBoxStyle.Information, "kjhuu")
Dim da1 As New OleDb.OleDbDataAdapter(sql2, con)
da1.Fill(ds, "ProjectAmount")
Label3.Text = ds.Tables("ProjectAmount").Rows(0).Item("Total Amount")
End Sub
End Class
答案 0 :(得分:1)
DataAdapter.Fill
创建一个新表,如果它不存在,但如果存在,它只会更新它添加命令的结果。
因此,如果您在组合框上选择thinkpad并单击按钮,ProjectAmount
表将如下所示:
ID Total Amount
1 16000
当您更改为yogapad并单击按钮时,表格现在如下所示:
ID Total Amount
1 16000
2 30000
现在,这里
Label3.Text = ds.Tables("ProjectAmount").Rows(0).Item("Total Amount")
您始终选择第一行,即ID 1,总金额16000.
每次点击按钮时都可以ds.Tables("ProjectAmount").Clear
或使用新的DataSet
。