first .. this
dr = dt.NewRow();
dr[1] = Label5.Text;
dr[2] = TextBox1.Text + TextBox2.Text;
dr[3] = this.Session["variable2"];
surely would be 'nicer' as
dr = dt.NewRow();
dr["price"] = Label5.Text;
dr["quantity"] = TextBox1.Text + TextBox2.Text;
dr["item"] = this.Session["variable2"];
second .. Im not so sure about this
GridView1.DataBind();
wouldn't that need to be
GridView1.Refresh();
?