7

I am new to C#.

I have a project to create an HR system and I created a page to add employees but the supervisor asked me to create a drop down list that displays the department when adding a new employee.

I don't know how to start and what I should do first. I already added a drop down list from the tools but I don't know how to choose the data source and the name and value of it. Should I choose the department table or the employee table?

public partial class _Default : Page
{

    private String strcon = ConfigurationManager.ConnectionStrings["hr"].ConnectionString;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)

            bindgrideview();
    }
    protected void bindgrideview()
    {
        SqlConnection strcon1 = new SqlConnection(strcon);
        strcon1.Open();
        string ADDStr = "SELECT F_name , L_name , salary FROM Employee ";
        SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
        DataTable table = new DataTable();


        SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);

        adapter.Fill(table);
        GridView1.DataSource = table;
        GridView1.DataBind();

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        string F_name = TextBox1.Text;
        string L_name = TextBox2.Text;
        int status = 1;
        string salarystr = TextBox3.Text.ToString();
        int salary = Int32.Parse(salarystr);
        SqlConnection strcon1 = new SqlConnection(strcon);
        strcon1.Open();
        string ADDStr = "ADDEMP";
        SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
        ADDCmd.CommandType = CommandType.StoredProcedure;
        ADDCmd.Parameters.AddWithValue("@F_name", F_name);
        ADDCmd.Parameters.AddWithValue("@L_name", L_name);
        ADDCmd.Parameters.AddWithValue("@status", status);
        ADDCmd.Parameters.AddWithValue("@salary", salary);

        ADDCmd.ExecuteNonQuery();
        bindgrideview();
        TextBox1.Text = "";
        TextBox2.Text = "";
    }

And this is a screen shot of my page: http://store2.up-00.com/Nov12/YXb11858.png

this is the final code there is no error but the dropdown list have no item :(

public partial class _Default : Page
{

    private String strcon = ConfigurationManager.ConnectionStrings["hr"].ConnectionString;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)

            bindgrideview();
    }
    protected void bindgrideview()
    {
        SqlConnection strcon1 = new SqlConnection(strcon);
        strcon1.Open();
        string ADDStr = "SELECT F_name , L_name , salary FROM Employee ";
        SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
        DataTable table = new DataTable();


        SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);

        adapter.Fill(table);
        GridView1.DataSource = table;
        GridView1.DataBind();

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        string F_name = TextBox1.Text;
        string L_name = TextBox2.Text;
        int status = 1;
        string salarystr = TextBox3.Text.ToString();
        int salary = Int32.Parse(salarystr);
        SqlConnection strcon1 = new SqlConnection(strcon);
        strcon1.Open();
        string ADDStr = "ADDEMP";
        SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
        ADDCmd.CommandType = CommandType.StoredProcedure;
        ADDCmd.Parameters.AddWithValue("@F_name", F_name);
        ADDCmd.Parameters.AddWithValue("@L_name", L_name);
        ADDCmd.Parameters.AddWithValue("@status", status);
        ADDCmd.Parameters.AddWithValue("@salary", salary);

        ADDCmd.ExecuteNonQuery();
        bindgrideview();
        TextBox1.Text = "";
        TextBox2.Text = "";
        TextBox3.Text = "";
    }
    protected void bindDepartments()
    {
        SqlConnection strcon1 = new SqlConnection(strcon);
        strcon1.Open();
        string ADDStr = "SELECT ID,department_name FROM Department ";
        SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
        DataTable table = new DataTable();


        SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);

        adapter.Fill(table);

        DropDownList1.DataSource = table;
        DropDownList1.DataValueField = "ID";
        DropDownList1.DataTextField = "department_name";
        DropDownList1.DataBind();

    }

}

1 Answer 1

20

As your code works for retrieving Employees Info. from database, you will retrieve the Departments info. from your Departments table.

protected void bindDepartments()
{
    SqlConnection strcon1 = new SqlConnection(strcon);
    strcon1.Open();
    string ADDStr = "SELECT DepartmentId,DepartmentName FROM Departments ";
    SqlCommand ADDCmd = new SqlCommand(ADDStr, strcon1);
    DataTable table = new DataTable();


    SqlDataAdapter adapter = new SqlDataAdapter(ADDCmd);

    adapter.Fill(table);

    ddlDepartments.DataSource = table;
    ddlDepartments.DataValueField = "DepartmentId"; //The Value of the DropDownList, to get it you should call ddlDepartments.SelectedValue;
    ddlDepartments.DataTextField = "DepartmentName"; //The Name shown of the DropDownList.
    ddlDepartments.DataBind();

}
Sign up to request clarification or add additional context in comments.

6 Comments

thank u soooo much i can't tell u how much i happy when i see ur answer but there is thing when i add drop down list like this pic store2.up-00.com/Nov12/JrJ12794.png i choose the department table but the value and the name what will be ?
@nourah - the Value property is the text that will be shown in the dropdown list. The Name property indicated the value that you can use to insert it into the database. The most common approach is to show the DepartmentName, make the DepartmentId as the value, Assuming your table contains the two fields.
the dpartment id in employee table so how can i use it ? :(
@nourah - This will drive us to a basic Database concept, the DepartmentID in the Employess table refers to Departments Table, that called Database Relationship. to insert new Employee you must select a Department to get it's Id in order to insert in the DepartmentId field in Employee table. - msdn.microsoft.com/en-us/library/ms175464(v=sql.105).aspx
i already make the relationship between the employee table and the department table but here i should make the value of the drop down list = department_ID which it in employee table as a foreign key so how can i do it ?
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.