Attribut bliver ikke brug ved update i database
Hej EksperterDette spørgsmål lægger sig lidt op af mit problem i: http://www.eksperten.dk/spm/774394. Men jeg har her lavet et mere simpelt eksempel samt fundet problemet - men ikke løsningen :-)
Jeg har en webform som blot skal opdaterer en værdi i en database.
Hvis jeg ligger "nr" (som er nøglen i update-funktionen) som en attribut på klassen er det som om at den ikke slå igennem i mit update-statement. Kode følger herunder:
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
protected System.Data.SqlClient.SqlConnection sqlConnection1;
protected System.Web.UI.WebControls.Button Button1;
protected int nr;
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
this.nr = 1;
TextBox1.Text = getNavn();
// Put user code to initialize the page here
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
aendreNavn();
}
private string getNavn()
{
sqlSelectCommand1.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));
sqlConnection1.Open();
string navn = sqlSelectCommand1.ExecuteScalar().ToString();
sqlConnection1.Close();
return navn;
}
private void aendreNavn()
{
//int nr = 1;
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));
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, TextBox1.Text));
sqlConnection1.Open();
int hest = sqlUpdateCommand1.ExecuteNonQuery();
sqlConnection1.Close();
}
I overstående eksempel slår updaten ikke igennem. Men hvis jeg "inkommenterer "//int nr = 1;" så virker det fint. Så det er lige så snart at "nr"-variabler kun kommer som attribut. Nogle som kan hjælpe.
Og på forhånd tak :-)