如何将所选组合框的记录检索到文本框中

时间:2016-02-21 06:03:30

标签: c# combobox

我想通过在组合框中选择的名称显示该成员的所有详细信息。我尝试下面给出的代码

private void cbSearchByName_SelectedIndexChanged(object sender,EventArgs e)
    {
        try
        {

            //int RowsAffected = 0;
            DataAccess oDataAccess = new DataAccess();
            con.Open();
            //showing flat number of selected member by name
            oDataAccess.cmd.CommandText = "SELECT FlatNo FROM MemberInfo where MemberName='" + cbSearchByName.Text + "'";
            oDataAccess.cmd.Connection = con;

            tbOwnerName.Text = ((string)cmd.ExecuteScalar());
            con.Close();
        }

        catch (Exception ex)
        {

            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

1 个答案:

答案 0 :(得分:0)

我知道你需要从memberinfo表中获取所有列记录并在UI中显示它们。为此,您需要使用ExecuteReader而不是ExecuteScalar。我在下面的代码中实现了执行阅读器

private void cbSearchByName_SelectedIndexChanged(object sender,EventArgs e)
{
    try
    {

        //int RowsAffected = 0;
        DataAccess oDataAccess = new DataAccess();
        using(SqlConnection connection = con )
      {
        connection.Open();
        //showing flat number of selected member by name
        oDataAccess.cmd.CommandText = "SELECT Top 1 Name,City FROM MemberInfo where MemberName='" + cbSearchByName.Text + "'";
        oDataAccess.cmd.Connection = con;

    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        tbOwnerName.Text = dr["Name"].ToString();
        tbOwnerCity.Text = dr["City"].ToString();
        //similarly store other column values in respective text boxes or wherever you need to get it displayed.
    }
       }
    }

    catch (Exception ex)
    {

        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }