单击按钮不在VB.net中从DB获取值

时间:2014-11-18 19:22:02

标签: .net database vb.net combobox

我已经和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

1 个答案:

答案 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