组合框值加载问题

时间:2010-08-02 14:44:56

标签: c# .net asp.net mysql

使用C#& MySQL的

当我从组合框中选择一个特定值然后我点击按钮时,相应的值应该显示在另一个文本框中

protected void Button1_Click(object sender, EventArgs e)
    {
        cmd2 = new OdbcCommand("Select name from users where username = '" + combobox1.Text  + "' ", con);
        dr1 = cmd2.ExecuteReader();
        while (dr1.Read())
        {
            textbox1.Text = dr1.GetString(0);

        }
        dr1.Close();

    }

以上代码正常工作,但没有显示在Textbox1中,只有查询中存在问题,我更改了Select name from users where username = '005'之类的查询 输出显示在textbox1中,但是当我使用组合框值时,它不显示。

我也尝试过:

combobox1.text, combobox1.selectedvalue, combobox1.selecteditem, combobox1.selectedindex

组合框填充代码

cmd2 = new OdbcCommand("Select username from users, con);
        ada2 = new OdbcDataAdapter(cmd2);
        ada2.Fill(data2);
        combobox1.DataValueField = "username";
        combobox1.DataSource = data2;

combobox1.DataBind();

用户名值,如201,202,203 ....,

为什么在使用组合框值时执行查询....

需要查询帮助

3 个答案:

答案 0 :(得分:4)

如果您使用的是winform控件,请使用以下代码

comboBox1.DataSource = list;
 comboBox1.ValueMember = "Name";

从组合框获取值使用comboBox1.SelectedValue [它将返回对象类型]

答案 1 :(得分:3)

comboBox1.Items[comboBox1.SelectedIndex].Text应该会给你你想要的东西。


将您的组合框的填充代码包装在

if (!Page.IsPostBack) {}

只有在第一次加载页面时才应填充它,而不是在后续回发时填写,否则每次页面回发时都会重置绑定。

答案 2 :(得分:1)

您应该使用combobox1.SelectedItem.Text来获得所需的结果。