简体   繁体   English

如何基于选定的ComboBox项目在DataGridView中显示记录?

[英]How to show record in DataGridView based on selected ComboBox item?

I am making windows application and am stuck at one place. 我正在制作Windows应用程序,被卡在一个地方。 My problem is that i want to display record in a DataGridView by selecting a ComboBox item but I do not understand the proper way to do it. 我的问题是我想通过选择ComboBox项在DataGridView显示记录,但是我不知道正确的方法。 Please help me in overcome this problem. 请帮助我克服这个问题。

private void grid_Load(object sender, EventArgs e)
{
con = new SqlConnection(constr);

    try
    {
        con.Open();
        //this.studTableAdapter.Fill(this.pRJTestDBDataSet.stud);
        //above line show error for connection to database

        da = new SqlDataAdapter("SELECT stud_no FROM stud", con);
        DataTable dt = new DataTable();
        da.Fill(dt);
        comboBox1.DataSource = dt;
        comboBox1.DisplayMember = "stud_no";
        comboBox1.ValueMember = "stud_no";
        comboBox1.DataSource = dt;
        comboBox1.SelectedIndex = -1;
        comboBox1_SelectedIndexChanged(sender, e);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    { con.Close(); }
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    this.studTableAdapter.Fill(pRJTestDBDataSet.stud);
    //above line show error for connection to database
}

i have tried above code but its not working there error like login fail to user 我已经尝试了上面的代码,但无法正常工作,例如用户登录失败

    cmd = new SqlCommand("SELECT stud_no FROM stud", con);
    da = new SqlDataAdapter(cmd);

    da.Fill(dt);
    Combobox1.DataSource = dt;
    Combobox1.DisplayMember = dt.Columns("Stud_no").ToString;

通过要绑定的数据在组合框的每个SelectedItemIndex更改事件处重新绑定DataGrid。

 private void button2_Click(object sender, EventArgs e)//button 2 is a show data button
    {
        if (combo_floor.Text != "")
        {

            DataSet ds = new DataSet();
            string sql = "select floor_id,floor_no,floor_remark,floor_entrydate from Floorinfo where floor_no='"+combo_floor.Text+"'";
            ds = c.select_query(sql);
            dataGridView1.DataSource = ds.Tables["a"];
            combo_floor.Text = "";
        }

        else
        {
            showdata();
            //showdata()is made for show all data from the given table name
        }


    }

//connection is in different class so please dont mind //连接位于不同的类中,所以请不要介意

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

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