0

私は 3 つのコンボボックスを持つ Windows アプリケーションを持っています。ユーザー名、作成者、承認者。ユーザー名にすべての従業員の名前が必要ですが、作成者と承認者は同じテーブルから選択した名前が必要です。そのため、整数値である従業員テーブルにロールを割り当て、ストロード プロシージャを起動しました。コンボボックスに入力できません

SQL:

emp table:
create table emp1
(
    employee_id int constraint pk_employee_id_employee primary key not null,
    un_id varchar(10) constraint uk_un_id_employee unique not null,
    fname varchar(20) not null,
    lname varchar(20) not null,
    roles int not null
)

stored procedure:
alter proc rolecombo
(
    @roles int  
)
as begin
select * from emp1 where roles<@roles
end

C# コード:

 private void Form1_Load(object sender, EventArgs e)
        {
            con.Open();
            adp = new SqlDataAdapter(cmd);
            cmd.Connection = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "rolecombo";
            cmd.Parameters.AddWithValue("@roles",comboBox3.SelectedValue);
            adp.Fill(dsautho, "emp1");
            comboBox3.DataSource = dsautho.Tables["emp1"];
            comboBox3.DisplayMember = "fname";
            comboBox3.ValueMember = "employee_id";
            comboBox3.SelectedIndex = -1;
            con.Close();
}
4

1 に答える 1

1

このサンプルコードを試してください:

public static DataSet DownDataBind()
{
    try
    {
        SqlConnection conn = new SqlConnection("Data Source=S1B01689;Initial Catalog=CosmosDB;User Id=sa;Password=Nttdata123");
        conn.Open();

        SqlDataAdapter adapter = new SqlDataAdapter("SELECT id,categName from CM_Categories",conn);
        DataSet ds = new DataSet();

        adapter.Fill(ds);

        adapter.Dispose();

        conn.Close();

        return ds;
    }
    catch (Exception exp)
    {
        string s = exp.Message.ToString();
        return null;
    }
}

private void Form1_Load(object sender, EventArgs e)
{
    try
    {
        DataSet ds = DownDataBind();
        comboBox1.DataSource = ds.Tables[0];// use Tables[0] instead of Table Name
        comboBox1.ValueMember = "Id";
        comboBox1.DisplayMember = "CategName";
        comboBox1.SelectedIndex = -1;         
    }
    catch (Exception exp)
    {
        MessageBox.Show(exp.Message);
    }
}
于 2013-05-14T09:35:35.247 に答える