TT_CodezMedlem sedan juli 2001458 inlägg 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
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...
DDinoMedlem sedan sep. 20011 914 inlägg 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))
EemissionMedlem sedan dec. 19996 721 inlägg 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)))
TT_CodezMedlem sedan juli 2001458 inlägg 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)))