Får ikke den nye værdi med ud af textbox
Hej ExpertenJeg har et problem med at jeg ikke får den nye værdi med ud af en textbox og gemt i min database.
Jeg har lavet en side hvorpå der er en tabel med nogle oplysninger. I tabellen har jeg lavet en kolonne med et link til at ændre i oplysninger. Ved tryk på dette ryger man over på en ny side. Koden til dette ser således ud:
Session["opretAendreFunktion"] = 2;
Session["nr"] = e.Item.Cells[0].Text;
Session["navn"] = e.Item.Cells[1].Text;
Response.Redirect("OpretAendreFunktion.aspx");
Over på den nye side ligger jeg værdien fra variablen navn ind i en textbox.
Når jeg kører siden, og ændrer værdien i textboxen og klikker "gem", så gemmer siden den "gamle" værdi. Koden på ændringssiden følger herunder:
private int opretAendreSwitch;
private int OPRET = 1;
private int AENDRE = 2;
private int nr;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
int opretAendreSw = Convert.ToInt32(Session["opretAendreFunktion"].ToString());
if (opretAendreSw == OPRET)
{
setToOpret();
}
else if (opretAendreSw == AENDRE)
{
int nrTemp = Convert.ToInt32(Session["nr"].ToString());
string navnTemp = Session["navn"].ToString();
setToAendre(nrTemp, navnTemp);
}
}
}
private void setToOpret()
{
opretAendreSwitch = OPRET;
OverskriftLabel.Text = "Opret funktion";
}
private void setToAendre(int nrTemp, string navnTemp)
{
OverskriftLabel.Text = "Ændre funktion";
opretAendreSwitch = AENDRE;
this.nr = nrTemp;
FunktionTextBox.Text = navnTemp;
}
private void GemButton_Click(object sender, System.EventArgs e)
{
string navn = FunktionTextBox.Text;
if (opretAendreSwitch == OPRET)
{
opretFunktion(navn);
}
else
{
aendreFunktion(navn);
}
Response.Redirect("VisAlleFunktioner.aspx");
}
private void opretFunktion(string navn)
{
this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@navn", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Navn", System.Data.DataRowVersion.Current, navn));
sqlConnection1.Open();
sqlInsertCommand1.ExecuteNonQuery();
sqlConnection1.Close();
}
private void aendreFunktion(string navn)
{
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Nr", System.Data.SqlDbType.BigInt, 8, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Nr", System.Data.DataRowVersion.Current, nr));
this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@navn", System.Data.SqlDbType.VarChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Navn", System.Data.DataRowVersion.Current, FunktionTextBox.Text));
sqlConnection1.Open();
int hest = sqlUpdateCommand1.ExecuteNonQuery();
sqlConnection1.Close();
}
Jeg har læst at jeg skal bruge metoden "isPostBack", men synes stadig ikke jeg kan få det til at spille.
Takker på forhånd :-)