2017-04-04 1 views
0

Lorsque j'essaie de préformer la page de profil de mise à jour dans mon projet, la requête ne fonctionne pas très bien. le code ci-dessous sur: Protected Sub btnSubmimt_Click (expéditeur comme objet, e EventArgs Comme) Poignées btnSubmimt.Click Dim dt DataTable = Nouveau DataTable() dt = Session ("Info")Mettre à jour la requête dans asp.net

Dim connStr As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString 

    Dim conn As SqlConnection = New SqlConnection(connStr) 
    conn.Open() 
    Dim cmd As SqlCommand = New SqlCommand() 
    Dim da As SqlDataAdapter = New SqlDataAdapter() 

    cmd.CommandType = CommandType.Text 
    cmd = New SqlCommand("Update [users] Set Email = @Email , Role = @Role , Country= @Country where UserName = @UserName") 

    cmd.Parameters.Add(New SqlParameter("@Email", txtEmail.Text.ToString)) 
    cmd.Parameters.Add(New SqlParameter("@Role", txtRole.Text.ToString)) 
    cmd.Parameters.Add(New SqlParameter("@Country", DDLCountry.SelectedValue.ToString)) 
    cmd.Parameters.Add(New SqlParameter("@UserName", Session("UserName"))) 
    cmd.Connection = conn 


    cmd.ExecuteNonQuery() 

    conn.Close() 



    ModalPopupExtender1.Show() 

End Sub 
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     Dim dt As DataTable = New DataTable() 
     dt = Session("Info") 
     txtusername.Text = dt.Rows(0)("UserName").ToString 
     txtEmail.Text = dt.Rows(0)("Email").ToString 
     txtRole.Text = dt.Rows(0)("Role").ToString 
     DDLCountry.SelectedItem.Text = dt.Rows(0)("Country").ToString 
    End If 
End Sub 
+2

Qu'est-ce qui ne fonctionne pas bien? Y a-t-il une erreur spécifique? –

+0

Vous avez fait plus que la plupart des gens en publiant votre code, mais nous avons besoin de savoir quel est le message d'erreur. Il n'apparaît pas une exception qui dit "ne fonctionne pas très bien" le fait-il? – Seano666

+0

Votre code semble bon; La seule erreur possible que je vois est que Session ("Info") n'a pas de valeur et que vous recevez un message d'erreur "Référence d'objet non définie sur une instance d'un objet". Juste une hypothèse fournissant ainsi la vraie erreur que vous rencontrez aidera. – CurseStacker

Répondre

0

Vous n'a pas besoin de DataTable et SqlDataAdapter car vous ne récupérez aucune donnée.

Je crois que vous voulez quelque chose comme ça -

Protected Sub btnSubmimt_Click(sender As Object, e As EventArgs) 
    Dim connStr As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString 
    Dim cmdText As String = "Update [users] Set Email = @Email , Role = @Role, Country= @Country where UserName = @UserName" 
    Using conn = New SqlConnection(connStr) 
     Using cmd = New SqlCommand(cmdText, conn) 
      conn.Open() 
      cmd.Parameters.Add(New SqlParameter("@Email", txtEmail.Text)) 
      cmd.Parameters.Add(New SqlParameter("@Role", txtRole.Text)) 
      cmd.Parameters.Add(New SqlParameter("@Country", DDLCountry.SelectedValue)) 
      cmd.Parameters.Add(New SqlParameter("@UserName", Session("UserName"))) 
      cmd.ExecuteNonQuery() 
     End Using 
    End Using 
    ModalPopupExtender1.Show() 
End Sub