-3

我制作了一个方法,分别使用从组合框中选择的“项目名称”获取所有信息。

这是我的代码:

private void comboBox1_KeyPress(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {

        SqlConnection conn = new SqlConnection(connString);

        conn.Open();

        string query = "select project_name from JO.dbo.Proj left join JO.dbo.Comp on Proj.company_id = Comp.company_id where Proj.company_name = '" + comboBox1.SelectedItem + "'";

        SqlCommand command = new SqlCommand(query, conn);

        SqlDataReader reader = command.ExecuteReader();

        if (reader.HasRows)
        {
            comboBox2.Items.Clear();
            while (reader.Read())
            {
                comboBox2.Items.Add(reader["project_name"].ToString());
            }

            reader.Close();  
        }
        conn.Close();
        conn.Dispose();
    }
}

;

void getAllInfoProj()
{

    SqlConnection conn = new SqlConnection(connString);

    conn.Open();

    string query2 = "select contact_person,contact_no,address from JO.dbo.Proj left join JO.dbo.Comp on Proj.company_id = Comp.company_id where project_name = '" + comboBox2.SelectedItem + "'";

    SqlCommand command = new SqlCommand(query2, conn);

    SqlDataReader reader = command.ExecuteReader();

    if (reader.HasRows)
    {
        while (reader.Read())
        {
            txtAddress.Text = reader["address"].ToString();
            txtContactNum.Text = reader["contact_no"].ToString();
            txtContactPerson.Text = reader["contact_person"].ToString();
        }
        reader.Close();
    }
    conn.Close();
    conn.Dispose();
}

当我在上面的方法上插入这个方法时,它根本没有任何结果。因为当我从组合框中选择“项目名称”时,我试图自动填充这些文本框

4

2 回答 2

1

SelectedIndexChanged您可以在事件的事件上调用该方法comboBox2

private void comboBox2_SelectedIndexChanged(object sender, 
        System.EventArgs e)
{
   getAllInfoProj();
}

注意:最好在 sql 语句中使用 sql 参数而不是内联参数。

并且在getAllInfoProj()您的循环中,您正在覆盖文本框文本属性,您只能在 UI 的末尾看到最后一条记录值。

于 2013-08-05T03:50:28.197 回答
0

SelectedIndexChanged由于您想在某些选择发生更改时加载文本框(选择了一个项目),因此您需要处理combobox2. getAllInfoProj()并在该事件中调用您的方法 。

于 2013-08-05T03:55:07.547 回答