Avatar billede djthomas Nybegynder
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;
        }
    }
Avatar billede nielle Nybegynder
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().
Avatar billede djthomas Nybegynder
21. oktober 2007 - 22:12 #2
Det har jeg lige tjekket og der er der noget i min querystring
Avatar billede nielle Nybegynder
21. oktober 2007 - 22:14 #3
Hvordan kommer du til den side hvor du kalder updateEntry() - er det ikke ved at submitte en form?
Avatar billede djthomas Nybegynder
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
Avatar billede nielle Nybegynder
21. oktober 2007 - 22:22 #5
Hvor kommer id så fra?
Avatar billede djthomas Nybegynder
21. oktober 2007 - 22:25 #6
Fra min url .../entry.aspx?id=8
Avatar billede nielle Nybegynder
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
Avatar billede djthomas Nybegynder
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
Avatar billede kalp Novice
21. oktober 2007 - 22:34 #9
og 8 findes i db'en ? :D
Avatar billede djthomas Nybegynder
21. oktober 2007 - 22:35 #10
yeps
Avatar billede erikjacobsen Ekspert
21. oktober 2007 - 22:38 #11
Du henter ikke data ind fra tabellen i Page_Load inden btnSubmit_Click kaldes?
Avatar billede kalp Novice
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
Avatar billede nielle Nybegynder
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.
Avatar billede djthomas Nybegynder
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
Avatar billede erikjacobsen Ekspert
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?
Avatar billede djthomas Nybegynder
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
Avatar billede erikjacobsen Ekspert
22. oktober 2007 - 20:13 #17
Nej tak, jeg samler slet slet ikke på point.
Avatar billede djthomas Nybegynder
22. oktober 2007 - 20:52 #18
oki så - men et tak skal du nu alligevel ha
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester