Click here to Skip to main content
15,891,777 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi! i have a slight problem here,I have the following master tables


SQL
M_employee

EMPID    Name 
1      abc
2      xyz
M_Division
DIVID  EMPID  DIVISON
1        2      arts
2        1      science
M_Designation
DESGID  EMPID  Designation
1         2      Teacher
2         1      Scientist

and based on the ID's present in the master table i retrieve few fields on a label in a form....What i want to do is when i store these values of the form in a new table i want only the id's to be stored and not the text values which are being displayed in the label of the form.Below is the code I tried..Can anyone help me?

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
namespace Forms
{
    public partial class temporaryduty : System.Web.UI.Page
    {
        SqlConnection conn = new SqlConnection("Server; Database; Integrated security = true");
        protected void Page_Load(object sender, EventArgs e)
        {
            Lbltoday.Text = DateTime.Now.ToString();
            if (!IsPostBack)
            {
                GetName();
            }
        }
     private void GetName()
     {
         SqlCommand cmd = new SqlCommand("Select EMPID,Name FROM M_employee where IsActive=1 ORDER BY Name", conn);
         DataSet objDs = new DataSet();
         SqlDataAdapter sd = new SqlDataAdapter(cmd);
         conn.Open();
         sd.Fill(objDs);
         conn.Close();
         if (objDs.Tables[0].Rows.Count > 0)
         {
             ddlname.DataSource = objDs.Tables[0];
             ddlname.DataTextField = "Name";
             ddlname.DataValueField = "EMPID";
             ddlname.DataBind();
             ddlname.Items.Insert(0, "--Select--");
         }
     }
     protected void ddlname_SelectedIndexChanged(object sender, EventArgs e)
     {
         GetDivision(ddlname.SelectedItem.Value);
     }
     private void GetDivision(string Name)
     {
         SqlCommand cmd = new SqlCommand("SELECT M_employee.Name, M_Division.DIVISION, M_Division.DIVID AS Expr1, M_Designation.DesigID AS Expr2, M_Designation.Designation FROM M_employee INNER JOIN M_Division ON M_employee.DIVID = M_Division.DIVID INNER JOIN M_Designation ON M_employee.DesigID = M_Designation.DesigID WHERE M_employee.EMPID=@EMPID ", conn);
         cmd.Parameters.AddWithValue("@EMPID", Name);
         DataSet objDs = new DataSet();
         SqlDataAdapter sd = new SqlDataAdapter(cmd);
         conn.Open();
         sd.Fill(objDs);
         conn.Close();
         if (objDs.Tables[0].Rows.Count > 0)
         {
             lbldiv.Text = objDs.Tables[0].Rows[0]["DIVISION"].ToString();
             lbldesig.Text = objDs.Tables[0].Rows[0]["Designation"].ToString();
         }
     }
    protected void btnSubmit_Click2(object sender, EventArgs e)
    {
        string RelaseDate = Calendar1.SelectedDate.Date.ToString();
        SqlCommand cmd = new SqlCommand("Insert into T_TADA_tempform(EMPID,DIVID,DesigID) values(@EMPID,@DIVID,@DesigID)", conn);
        cmd.Parameters.AddWithValue("@EMPID", ddlname.SelectedValue);
        cmd.Parameters.AddWithValue("@DIVID", lbldesig.Text);
        cmd.Parameters.AddWithValue("@DesigID", lbldiv.Text);
        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
            int cnt = cmd.ExecuteNonQuery();
            conn.Close();
            if (cnt == 1)
            {
                Response.Redirect("form.aspx");
            }
            else
                Response.Write("Form has not been submitted,Please Try again!");
        }
    }
    }
    }
Posted
Comments
Kschuler 10-Oct-13 11:51am    
You're using the word "Form" which made me think this was a Windows Forms issue, but it looks like it's really an asp.net issue. You should add that to the tags in the question.

1 solution

In the btnSubmit_Click2 method, you are setting the @DIVID and @DesigID parameters to be the values of the labels on the form. These labels are set the the name of the division and the name of the designation respectively in the GetDivision method.

You will need to set variables on the form to the value of the DivID and DesigID and then use those for the parameters. You can set the values in the GetDivision method. You can use more labels but this may not be visually desirable. I would suggest adding them as hidden variables.

Good luck.

Greg
 
Share this answer
 
Comments
Member 10066916 10-Oct-13 12:59pm    
public partial class temporaryduty : System.Web.UI.Page
{
private int divisionId;
private int designationId;

............
if (objDs.Tables[0].Rows.Count > 0)
{
lbldiv.Text = objDs.Tables[0].Rows[0]["DIVISION"].ToString();
lbldesig.Text = objDs.Tables[0].Rows[0]["Designation"].ToString();
divisionId = objDs.Tables[0].Rows[0]["Expr1"];
designationId = objDs.Tables[0].Rows[0]["Expr2"];
}

submit button
cmd.Parameters.AddWithValue("@DIVID", divisionId);
cmd.Parameters.AddWithValue("@DesigID", designationId);

something like this...

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900