繁体   English   中英

从组合框设置的数据库中检索数据到文本框

[英]Retrieve data from database set by combobox to textbox

我有一个表单,其中有1个组合框和1个文本框。

还有一个名为tbl_dress的表,该表的列为Dress_ID,Dress_Name和Dress_Price。

组合框显示Dress_Name,并且代码有效。

组合框的代码:-

Private Sub FillCombo()
        Try
            Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb")
            Dim query As String = ("SELECT Dress_Name FROM tbl_dress")
            Dim da As New OleDb.OleDbDataAdapter(query, fillcon)
            Dim ds As New DataSet
            da.Fill(ds)
            ComboBox1.ValueMember = "Dress_Name"
            ComboBox1.DataSource = ds.Tables(0)
            ComboBox1.SelectedIndex = 0
        Catch ex As Exception
            MsgBox("ERROR : " & ex.Message.ToString)
        End Try
    End Sub

这是我的表格加载时的代码:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            Dim con As New OleDb.OleDbConnection
            con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\TMS Final\TMS Final\db\db_TMS.accdb"
            con.Open()

            FillCombo() ' Display data from tbl_order on form load
            con.Close()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

    End Sub

所以问题是,我如何获得Dress_Price,它由组合框中选择的Dress_Name决定。

我已经尝试了以下代码,但是我有错误。

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged 
Try 
    Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb") 

    fillcon.Open() 

    Dim query As String = ("SELECT Dress_Price FROM tbl_dress WHERE Dress_Name = ' " & ComboBox1.SelectedValue.ToString & " ' ") 
    Dim cmd As New OleDb.OleDbCommand(query, fillcon) 
    cmd.CommandText = query 

    TextBox1.Text = cmd.ExecuteScalar().ToString() 

    fillcon.Close() 

    Catch ex As Exception 
        MessageBox.Show(ex.ToString) 
    End Try 

End Sub

所以我在哪里出错了,我该怎么办? vb.net的新手

在执行时尝试此行

TextBox1.Text = Convert.ToInt32(cmd.ExecuteScalar())。ToString()

我的问题是,您当时是否获得期望的价值

您可以将塞子放在下面的方法附近并查看返回值

暗淡查询为String =(“从tbl_dress处的Dress_Price选择连衣裙名称='“&ComboBox1.SelectedValue.ToString&”'“)

尝试硬编码礼服名称并检查。 也尝试选择前1个

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged 
    Try 
        Dim fillcon As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\annonymous\Documents\Visual Studio 2012\Projects\DressTest\DressTest\db\PriceTesting.accdb") 

        fillcon.Open() 

        Dim query As String = ("SELECT Dress_Price FROM tbl_dress WHERE Dress_Name = ' " & ComboBox1.Text & " ' ") 
        Dim cmd As New OleDb.OleDbCommand(query, fillcon) 
        cmd.CommandText = query 

        TextBox1.Text = cmd.ExecuteScalar().ToString() 

        fillcon.Close() 

    Catch ex As Exception 
        MessageBox.Show(ex.ToString) 
    End Try 

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM