21. oktober 2007 - 21:46
Der er
17 kommentarer og 1 løsning
Hvorfor indsættes der ikke noget i databasen?
Jeg har lavet mig denne lille methode, som jeg selv synes ser rigtig nok ud, men hvorfor blir data'en ikke opdateret i db? protected bool updateEntry() { SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["blogConnectionString"].ConnectionString); cn.Open(); SqlCommand upd = new SqlCommand("UPDATE entries SET title = @title, publish = @publish, text = @text WHERE id = @id", cn); upd.Parameters.Add("@title", SqlDbType.VarChar); upd.Parameters.Add("@text", SqlDbType.Text); upd.Parameters.Add("@publish", SqlDbType.Int); upd.Parameters.Add("@id", SqlDbType.Int); upd.Parameters["@title"].Value = titleInput.Text; upd.Parameters["@text"].Value = textInput.Text; upd.Parameters["@publish"].Value = publishInput.SelectedValue; upd.Parameters["@id"].Value = Request.QueryString["id"]; int result = upd.ExecuteNonQuery(); cn.Close(); if (result == 1) { return true; } else { return false; } }
Annonceindlæg fra Trustworks
21. oktober 2007 - 21:55
#1
Den mest nærligende mistanke er at der ikke er noget i din: Request.QueryString["id"]; når du kalder updateEntry().
21. oktober 2007 - 22:12
#2
Det har jeg lige tjekket og der er der noget i min querystring
21. oktober 2007 - 22:14
#3
Hvordan kommer du til den side hvor du kalder updateEntry() - er det ikke ved at submitte en form?
21. oktober 2007 - 22:18
#4
Jo det gør jeg når jeg klikker på en knap, som har denne code-behind: protected void btnSubmit_Click(object sender, EventArgs e) { if(inputAction.Value == "update") { if(updateEntry()) { statusLbl.Visible = true; statusLbl.Text = "Entry er updateret korrekt!<br /><br />"; } } else if(inputAction.Value == "create") { if (insertEntry()) { redirectAndClear("Din entry er sat korrekt ind!"); } } } Jeg har også debugget mig frem til at inputAction.Value faktisk er "update" og jeg har tjekket at jeg kommer ind i updateEntry metoden
21. oktober 2007 - 22:22
#5
Hvor kommer id så fra?
21. oktober 2007 - 22:25
#6
Fra min url .../entry.aspx?id=8
21. oktober 2007 - 22:30
#7
Så du klikker på et link med id'et. Kommer til siden med formen og knapperne. Og trykker på submit-knappen som så fyre sin btnSubmit_Click(). Korrekt forstået
21. oktober 2007 - 22:33
#8
Yeps - jeg har også prøvet at skrive Respone.Write(Request.QueryString["id"]); og så skriver den 8 på skærmen
21. oktober 2007 - 22:34
#9
og 8 findes i db'en ? :D
21. oktober 2007 - 22:35
#10
yeps
21. oktober 2007 - 22:38
#11
Du henter ikke data ind fra tabellen i Page_Load inden btnSubmit_Click kaldes?
21. oktober 2007 - 22:38
#12
prøv at køre din sql uden parameters.. og tjek også med din debugger, at alle parameters har en værdi.. måske er nogle af felterne i db'en sat til ikke at kunne modtage null tænker primært på denne.. upd.Parameters["@publish"].Value = publishInput.SelectedValue; burde måske være upd.Parameters["@publish"].Value = publishInput.SelectedItem.Value
21. oktober 2007 - 22:39
#13
Er du sikker på at updateEntry() rent faktisk bliver kaldt? Der skal jo være opfyldt at inputAction.Value == "update" før at det sker.
21. oktober 2007 - 22:50
#14
>>erikjacobsen - Jo det gør jeg - der flyder jeg jo data i mine formular felter, så deres values er sat til at jeg klikker på btnSubmit_Click
21. oktober 2007 - 22:53
#15
Det kan vist forstås på flere måder. Det kan mit spørgsmål nok også. Mere direkte: du bruger ispostback korrekt?
22. oktober 2007 - 18:18
#16
erikjacobsen >>> Det var jo lige det der var galt - jeg har nu læst lidt om hvad postback er og det var selvfølgelig det som var galt. Svar og du får point
22. oktober 2007 - 20:13
#17
Nej tak, jeg samler slet slet ikke på point.
22. oktober 2007 - 20:52
#18
oki så - men et tak skal du nu alligevel ha
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.