user175084
user175084

Reputation: 4640

Update database with values from textbox

i m trying to edit the values in database through textboxes in ASP.

first i retrived the values from database and set those values to the value property of textboxes on the form so that user can see the old values.

now, i want him to enter new values in the same textboxes and when he click on update the new values should be updated in the database.

can any one tell what i have to do to get those new values???? when to submit the form????

the code:

protected void Button2_Click(object sender, EventArgs e)
        {
            string MachineGroupName = TextBox2.Text;
            string MachineGroupDesc = TextBox3.Text;
            int TimeAdded = DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second;

            if (MachineGroupName == "" || MachineGroupDesc == "")
            {
                Label2.Text = ("Please ensure all fields are entered");
                Label2.Visible = true;
            }
            else
            {
                System.Data.SqlClient.SqlConnection dataConnection = new SqlConnection();
                dataConnection.ConnectionString =
                    @"Data Source=JAGMIT-PC\SQLEXPRESS;Initial Catalog=SumooHAgentDB;Integrated Security=True";

                System.Data.SqlClient.SqlCommand dataCommand = new SqlCommand();
                dataCommand.Connection = dataConnection;

                //tell the compiler and database that we're using parameters (thus the @first, @last, @nick)  
                dataCommand.CommandText = ("UPDATE [MachineGroups] SET ([MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc,[TimeAdded]=@TimeAdded) WHERE ([MachineGroupID]= @node)");

                //add our parameters to our command object  
                dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName);
                dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc);
                dataCommand.Parameters.AddWithValue("@TimeAdded", TimeAdded);

                dataConnection.Open();
                dataCommand.ExecuteNonQuery();
                dataConnection.Close();

            }

Upvotes: 1

Views: 22188

Answers (3)

Aryapawan
Aryapawan

Reputation: 21

long MachineGroupID = Convert.ToInt64(Request.QueryString["node"]);  
dataCommand.CommandText = "UPDATE [MachineGroups] SET 
[MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc,    
[TimeAdded]=@TimeAdded WHERE [MachineGroupID]= @MachineGroupID",cn;  //add our parameters to our command object   
dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName); 
dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc); 
dataCommand.Parameters.AddWithValue("@TimeAdded", TimeAdded); 
dataCommand.Parameters.AddWithValue("@MachineGroupID", MachineGroupID); 

example :

SqlCommand cmdup = new SqlCommand("UPDATE [port1] SET [prt1]=@prt1 WHERE [no]= 1", cn);             
cmdup.Parameters.Add("@prt1", TextBox1.Text);   
cmdup.ExecuteNonQuery(); 

I think this may help your case, mention Connection at the last of your update command

Upvotes: 1

Canavar
Canavar

Reputation: 48108

You're not providing the @node parameter. so you should get an exception. Also change your sql statement like that without parenthesis :

long MachineGroupID = Convert.ToInt64(Request.QueryString["node"]); 
dataCommand.CommandText = "UPDATE [MachineGroups] SET [MachineGroupName]=@MachineGroupName,[MachineGroupDesc]=@MachineGroupDesc,[TimeAdded]=@TimeAdded WHERE [MachineGroupID]= @MachineGroupID";

//add our parameters to our command object  
dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName);
dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc);
dataCommand.Parameters.AddWithValue("@TimeAdded", TimeAdded);
dataCommand.Parameters.AddWithValue("@MachineGroupID", MachineGroupID);

EDIT : As you posted your insert page, your table should have an ID column to identify your record uniquely. As I see in your update SQL youe ID column's name is MachineGroupID. So to update your record, you should provide MachineGroupID as @node parameter. try to get this MachineGroupID value in your event and pass it into your Command.

Upvotes: 1

user175084
user175084

Reputation: 4640

ok i have the insert page which is working fine with this code.......

    protected void Button2_Click(object sender, EventArgs e)
    {
        string MachineGroupName = TextBox2.Text;
        string MachineGroupDesc = TextBox3.Text;
        int TimeAdded = DateTime.Now.Hour+DateTime.Now.Minute+DateTime.Now.Second;

        if (MachineGroupName == "" || MachineGroupDesc == "")
        {
            Label1.Text = ("Please ensure all fields are entered");
            Label1.Visible = true;
        }
        else
        {
            System.Data.SqlClient.SqlConnection dataConnection = new SqlConnection();
            dataConnection.ConnectionString =
                @"Data Source=JAGMIT-PC\SQLEXPRESS;Initial Catalog=SumooHAgentDB;Integrated Security=True";

            System.Data.SqlClient.SqlCommand dataCommand = new SqlCommand();
            dataCommand.Connection = dataConnection;

            //tell the compiler and database that we're using parameters (thus the @first, @last, @nick)  
            dataCommand.CommandText = ("INSERT [MachineGroups] ([MachineGroupName],[MachineGroupDesc],[TimeAdded]) VALUES (@MachineGroupName,@MachineGroupDesc,@TimeAdded)");

            //add our parameters to our command object  
            dataCommand.Parameters.AddWithValue("@MachineGroupName", MachineGroupName);
            dataCommand.Parameters.AddWithValue("@MachineGroupDesc", MachineGroupDesc);
            dataCommand.Parameters.AddWithValue("@TimeAdded", TimeAdded);

            dataConnection.Open();
            dataCommand.ExecuteNonQuery();
            dataConnection.Close();

        }

Upvotes: 0

Related Questions