webForumDet fria alternativet

UPDATE som gud glömde...

.NET

4 svar · 709 visningar · startad av T_Codez

Medlem sedan juli 2001458 inlägg
Frågan#1

Hej igen

Nu är jag villrådig...

Jag har en spara knapp och koden nedan representerar vad som händer vid klickning på den.

Kan inte begripa varför inte db:n uppdateras!? Samma data kommer upp gång på gång... Så några ändringar sker inte what so ever...

Hur i hunna ska jag göra !?

Tacksam för alla uppslag... Hittade en tråd tidigare med hyfsat samma problem, men jag blev inte klokare fördet.

      Dim tbl1_Id
        tbl1_Id = Request.QueryString("Id")
        Response.Write(tbl1_Id & "<br>")

        Dim GName As String
        GName = Txt_Gbook.Text

        Response.Write(GName & "<br>")
        Dim SQL As String = "UPDATE tblGuestbook SET ModBy = " & Session("bw_user") & ", ModDate = '" & Now() & "', tblGuestbook.Guestbook = '" & GName & "' WHERE tblGuestbook.ID = " & Request.QueryString("Id")

        Dim Conn As New SqlConnection(strConn)
        Dim Command As New SqlCommand(SQL, Conn)
        '        Response.Write(SQL)
        Conn.Open()
        Try
            Command.ExecuteNonQuery()
            'Conn.Close()
            '           Response.Redirect("gbook_edit2.aspx?Id=" & Request.QueryString("Id") & "&GbName=" & Txt_Gbook.Text & "")
        Catch ex As SqlException
            Response.Write(ex.Message)
            Conn.Close()
        End Try
Medlem sedan maj 2006296 inlägg
#2

UPDATE tblGuestbook SET ModBy = " & Session("bw_user") & ", ModDate = '" & Now() & "', Guestbook = '" & GName & "' WHERE ID = " & tbl1_Id

skulle jag korta ner den till... sen är det lite svårt att säga vad som är fel när man inte vet hur din databas ser ut eller hur din kod funkar i övrigt.

Funkar din connection string, till exempel? (strConn)
Heter ditt id-fält i databasen verkligen ID och inte Id eller id? (vet inte om case har betydelse här)
Använder du SQL Server som databas? Annars ska du nog inte ha SqlConnection...

Medlem sedan sep. 20011 914 inlägg
#3
Dim sql As String = String.Format("UPDATE tblGuestbook SET ModBy = '{0}', ModDate = '{1}', Guestbook = '{2}' WHERE tblGuestbook.ID = {3}", Session("bw_user").ToString(), DateTime.Now.ToString(), Txt_Gbook.Text, Convert.ToInt32(Request.QueryString("Id")))

Dim conn As New SqlConnection(strConn)
Dim cmd As New SqlCommand(sql, conn)
    
Try
   conn.Open()
   cmd.ExecuteNonQuery()
Catch ex As SqlException
   Throw
Finally
   conn.Close()
End Try

Response.Redirect(String.Format("gbook_edit2.aspx?Id={0}&GBName={1}", Request.QueryString("Id"), Txt_Gbook.Text))
Medlem sedan dec. 19996 721 inlägg
#4

Parametriserade frågor är det som gäller, för stabilitet, säkerhet och prestanda.

Dim sql As String = "UPDATE tblGuestbook SET ModBy = @ModBy, ModDate = @ModDate, Guestbook = @Guestbook WHERE tblGuestbook.ID = @GuestBookID"

Dim conn As New SqlConnection(strConn)
Dim cmd As New SqlCommand(sql, conn)

cmd.Parameters.Add("@ModBy",SqlDbType.VarChar,50).Value=Session("bw_user").ToString()
cmd.Parameters.Add("@ModDate",SqlDbType.DateTime).Value=DateTime.Now
cmd.Parameters.Add("@Guestbook ",SqlDbType.VarChar,50).Value=Txt_Gbook.Text
cmd.Parameters.Add("@GuestbookID",SqlDbType.Int).Value=Convert.ToInt32(Request.QueryString("Id")

Try
   conn.Open()
   cmd.ExecuteNonQuery()
Catch ex As SqlException
   Throw
Finally
   conn.Close()
End Try

Response.Redirect(String.Format("gbook_edit2.aspx?Id={0}&GBName={1}", Request.QueryString("Id"), Server.URLEncode(Txt_Gbook.Text)))

eller om du kör ASP.NET 2.0

Dim sql As String = "UPDATE tblGuestbook SET ModBy = @ModBy, ModDate = @ModDate, Guestbook = @Guestbook WHERE tblGuestbook.ID = @GuestBookID"

Using conn As New SqlConnection(strConn)
   Using cmd As New SqlCommand(sql, conn)
      cmd.Parameters.Add("@ModBy",SqlDbType.VarChar,50).Value=Session("bw_user").ToString()
      cmd.Parameters.Add("@ModDate",SqlDbType.DateTime).Value=DateTime.Now
      cmd.Parameters.Add("@Guestbook ",SqlDbType.VarChar,50).Value=Txt_Gbook.Text
      cmd.Parameters.Add("@GuestbookID",SqlDbType.Int).Value=Convert.ToInt32(Request.QueryString("Id")
      conn.Open()
      cmd.ExecuteNonQuery()
   End Using
End Using

Response.Redirect(String.Format("gbook_edit2.aspx?Id={0}&GBName={1}", Request.QueryString("Id"), Server.URLEncode(Txt_Gbook.Text)))
Medlem sedan juli 2001458 inlägg
#5

Hej och tack för hjälpen

Soo... To all of you :birp

Felet låg till sist inte i SQL:en alla fungerar (även min rackare). Lösningen blev till slut att jag måste lära mig att i ASP.NET ska jag tänka på att response.redirect ska man sluta med när det är en postback till samma sida och sen endast använda mig av response.redirect när jag ska till ny sida.

Valde emissions sql med parametrar, då den känns väldigt trygg. Samt att jag lärde mig mest nytt på den.

    Public Sub SaveBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveBtn.Click

        Dim sql As String = "UPDATE tblGuestbook SET ModBy = @ModBy, ModDate = @ModDate, Guestbook = @Guestbook WHERE tblGuestbook.ID = @GuestBookID"

        Dim conn As New SqlConnection(strConn)
        Dim cmd As New SqlCommand(sql, conn)

        cmd.Parameters.Add("@ModBy", SqlDbType.VarChar, 50).Value = Session("bw_user").ToString()
        cmd.Parameters.Add("@ModDate", SqlDbType.DateTime).Value = DateTime.Now
        cmd.Parameters.Add("@Guestbook ", SqlDbType.VarChar, 50).Value = Txt_Gbook.Text
        cmd.Parameters.Add("@GuestbookID", SqlDbType.Int).Value = Convert.ToInt32(Request.QueryString("Id"))

        Try
            conn.Open()
            cmd.ExecuteNonQuery()
        Catch ex As SqlException
            Throw
        Finally
            conn.Close()
        End Try

        ActionDone.ForeColor = System.Drawing.Color.Green
        ActionDone.Text = " - sparad"
        Call PopulateDatagrid()
        ' Response.Redirect(String.Format("gbook_edit2.aspx?Id={0}&GBName={1}", Request.QueryString("Id"), Server.UrlEncode(Txt_Gbook.Text)))
264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)