-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 に答える