SQL / C#我应该在哪里插入我的方法

时间:2013-08-05 03:42:17

标签: c# sql methods

我创建了一个方法,分别使用从comboBox中选择的“项目名称”获取所有信息。

这是我的代码:

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();
}

当我在上面的方法上插入此方法时,它根本没有任何结果。因为当我从comboBox

中选择“项目名称”时,我正在尝试自动填充这些文本框

2 个答案:

答案 0 :(得分:1)

您可以在SelectedIndexChanged

comboBox2事件中调用该方法
private void comboBox2_SelectedIndexChanged(object sender, 
        System.EventArgs e)
{
   getAllInfoProj();
}

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

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

答案 1 :(得分:0)

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