deaMedlem sedan dec. 2002387 inlägg Asp.net - C#
om man hämtar upp data från databas till TextBoxar i ett formulär med hjälp av:
string SQL3 = "SELECT * FROM Users WHERE UserID = "+ (Session["UserID"]);
SqlCommand com = new SqlCommand(SQL3, con);
con.Open();
SqlDataReader dr3 = com.ExecuteReader();
if ( dr3.Read() )
{
TextboxFnamn.Text += (dr3["Fnamn"]).ToString();
TextboxEnamn.Text += (dr3["Enamn"]).ToString();
TextboxEpost.Text += (dr3["Epost"]).ToString();
TextboxHomepage.Text += (dr3["Homepage"]).ToString();
TextboxCity.Text += (dr3["City"]).ToString();
TextboxAge.Text += (dr3["Age"]).ToString();
TextboxAboutme.Text += (dr3["Aboutme"]).ToString();
dr3.Close();
con.Close();
Label1.Text = "<h1>Uppdatera din profil!</h1>";
}
Om man nu vill ändra i formuläret och vill skriva något annat, vad skriver man då i knappen?
om vi skriver så här så skriver den in det nya man skrivit men det tar inte bort det gamla!?
är det inte det UPDATE gör - byter ut?
string sql = "UPDATE Users SET Fnamn = '" +Fnamn.Text +"' WHERE UserID = "+ (Session["UserID"]);
NETworkMedlem sedan juni 20011 732 inlägg Byt ut += mot bara ett = annars lägger den till värdet på det värde som redan finns.
TextboxCity.Text = (dr3["City"]).ToString();
Förstod jag dig rätt?
deaMedlem sedan dec. 2002387 inlägg NETwork skrev:
Byt ut += mot bara ett = annars lägger den till värdet på det värde som redan finns.
Förstod jag dig rätt?
Nej, eller så förstår inte jag dig rätt!?'
vilket += menar du? tar jag bort dem från if-satsen så blir det inte dubbelt i textboxen, men det är inte problemet, problemet är hur jag skriver min SQL-sats för att uppdatera i databasen när jag trycker på formulärknappen..
NETworkMedlem sedan juni 20011 732 inlägg Aha. Sql-satsen ser riktig ut, hur ser koden ut där du uppdaterar din tabell?
deaMedlem sedan dec. 2002387 inlägg
Aha. Sql-satsen ser riktig ut, hur ser koden ut där du uppdaterar din tabell?
hmm, tabell?
så här ser knappen ut:
private void Button1_Click(object sender, System.EventArgs e)
{
string sql = "UPDATE Users SET Fnamn = '" +Fnamn.Text+ "' WHERE UserID = "+ (Session["UserID"]);
SqlCommand com2 = new SqlCommand(sql, con);
try
{
con.Open();
com2.ExecuteNonQuery();
}
catch(SqlException error)
{
Label12.Text = error.Message;
}
finally
{
con.Close();
}
}
NETworkMedlem sedan juni 20011 732 inlägg Prova:
com2.Connection.Open();
com2.ExecuteNonQuery();
com2.Connection.Close();
deaMedlem sedan dec. 2002387 inlägg tyvärr ändrade inte det något..
om namnet i textboxen är Kalle och jag markerar det och skriver Nisse och trycker på skicka-knappen så skrivs Kalle ut i Textboxen!
Argh
deaMedlem sedan dec. 2002387 inlägg Så här löste vi det..
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
visaPost();
}
}
private void visaPost()
{
visa.Text = "Du är inloggad som \<strong\>" + Convert.ToString(Session\["AnvNamn"\]) + "\</strong\>";
string SQL3 = "SELECT \* FROM Users WHERE UserID = "+ (Session\["UserID"\]);
SqlCommand com = new SqlCommand(SQL3, con);
con.Open();
SqlDataReader dr3 = com.ExecuteReader();
if ( dr3.Read() )
{
Fnamn.Text = (dr3\["Fnamn"\]).ToString();
Enamn.Text = (dr3\["Enamn"\]).ToString();
Epost.Text = (dr3\["Epost"\]).ToString();
Homepage.Text = (dr3\["Homepage"\]).ToString();
City.Text = (dr3\["City"\]).ToString();
Age.Text = (dr3\["Age"\]).ToString();
Aboutme.Text = (dr3\["Aboutme"\]).ToString();
dr3.Close();
con.Close();
Label1.Text = "\<h1\>Uppdatera din profil!\</h1\>";
}
else
{
Label1.Text = "\<h1\>Fyll i din profil!\</h1\>";
}
}
private void Button1_Click(object sender, System.EventArgs e)
{
string sql = "UPDATE Users SET Fnamn = '" +Fnamn.Text+ "' WHERE UserID = "+ Session\["UserID"\];
//"+ Session\["UserID"\]
//Response.Write(sql);
//'"+ AnvNamn.Text + "'AND Password ='" + pw.Text + "'";
SqlCommand com2 = new SqlCommand(sql, con);
try
{
com2.Connection.Open();
com2.ExecuteNonQuery();
}
catch(SqlException error)
{
Label12.Text = error.Message;
}
finally
{
com2.Connection.Close();
}
}
Innan när vi tryckte på knappen så genomfördes bara Page_Load men inte uppdateringen.
Aha. Jag skulle precis skriva kod som jag vet fungerar, och så kom lösningen på problemet ändå. Nåväl. :r