2013-07-15 70 views
1

我正在使用此代碼用新值更新數據庫。但它返回消息線程中斷。這是什麼意思?我的代碼有什麼問題?線程中斷

Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("DeskriptivaConnectionString").ConnectionString.ToString() 
    Dim txtName As Object = DirectCast(FormView1.FindControl("txtName"), TextBox) 
    Dim txtLastName As Object = DirectCast(FormView1.FindControl("txtLastName"), TextBox) 
    Dim txtInfo As Object = DirectCast(FormView1.FindControl("txtInfo"), TextBox) 
    Dim txtCity As Object = DirectCast(FormView1.FindControl("txtCity"), TextBox) 
    Dim txtPrize As TextBox = DirectCast(FormView1.FindControl("txtPrize"), TextBox) 
    Dim txtPhone As TextBox = DirectCast(FormView1.FindControl("txtPhone"), TextBox) 
    Dim txtMail As TextBox = DirectCast(FormView1.FindControl("txtMail"), TextBox) 


    Try 
     Using conn As New SqlConnection(connStr) 
      Dim cmd As SqlCommand = conn.CreateCommand() 
      cmd.CommandText = "UPDATE Profiles SET @Name = Name, @LastName = LastName, @Info = Info, @City = City, @Prize = Prize, @Phone = Phone, @Mail = Mail WHERE (UserName = @UserName)" 
      cmd.Parameters.Add("@Name", System.Data.SqlDbType.NVarChar).Value = txtName.Text 
      cmd.Parameters.Add("@LastName", System.Data.SqlDbType.NVarChar).Value = txtLastName.Text 
      cmd.Parameters.Add("@Info", System.Data.SqlDbType.NText).Value = MakeLink(HtmlRemoval.StripTagsCharArray(txtInfo.Text)) 
      cmd.Parameters.Add("@City", System.Data.SqlDbType.NVarChar).Value = txtCity.Text 
      cmd.Parameters.Add("@Prize", System.Data.SqlDbType.NVarChar).Value = txtPrize.Text 
      cmd.Parameters.Add("@Phone", System.Data.SqlDbType.NVarChar).Value = txtPhone.Text 
      cmd.Parameters.Add("@Mail", System.Data.SqlDbType.NVarChar).Value = txtMail.Text 
      cmd.Parameters.Add("@UserName", System.Data.SqlDbType.NVarChar).Value = Context.User.Identity.Name 

      conn.Open() 
      cmd.ExecuteNonQuery() 
      conn.Close() 
      Response.Redirect(ResolveClientUrl("~/Profil/")) 
     End Using 

    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 

回答

4

使用Response.Redirect(ResolveClientUrl("~/Profil/"), false)Context.ApplicationInstance.CompleteRequest();代替Response.Redirect(ResolveClientUrl("~/Profil/"))

檢查Correct use of System.Web.HttpResponse.Redirect博客文章以瞭解更多信息

,也是你的SQL參數@符號是放錯了地方。如下更改

UPDATE Profiles SET Name = @Name, LastName = @LastName, Info = @Info, City = @City, Prize = @Prize, Phone = @Phone, Mail = @Mail WHERE (UserName = @UserName)

+0

謝謝,這解決了這個問題。但數據庫中的數據仍然不會更新。你能否再次檢查上面的代碼,因爲代碼在其他應用程序中工作,但現在不起作用。 – jstorm31