2010-06-14 3 views
0

Je n'arrive pas à mettre à jour une base de données SQL, le problème n'est pas qu'elle ne se met pas à jour, mais que certains paramètres sont mis à jour alors que les autres ne le sont pas.erreur lors de la mise à jour d'une base de données dans ASP.NET

est ici le code de mise à jour des paramètres:

string EditRequest = "UPDATE Requests SET Description = @Desc, BJustif = @Justif, Priority = @Priority, Requested_System = @Requested, Request_Status = @Stat WHERE"; 
    EditRequest += " [email protected]"; 

    SqlConnection Submit_conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DBConn"].ConnectionString); 
    SqlCommand Submit_comm = new SqlCommand(EditRequest, Submit_conn); 


    Submit_comm.Parameters.AddWithValue("@ID", Request.QueryString["reqid"]); 
    Submit_comm.Parameters.AddWithValue("@Desc", DescBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Justif", JustifBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Priority", PriorityList.SelectedValue); 
    Submit_comm.Parameters.AddWithValue("@Requested", RelatedBox.Text); 
    Submit_comm.Parameters.AddWithValue("@Stat", 1); 

    Submit_conn.Open(); 

    Submit_comm.ExecuteNonQuery(); 

    Submit_comm.Dispose(); 

    Submit_comm = null; 

    Submit_conn.Close(); 

    get_Description(); 

    Page.ClientScript.RegisterStartupScript(this.GetType(), "Refresh", "ReloadPage();", true); 

cette fonction est appelée par un bouton sur une forme de pop-up qui affiche le contenu des paramètres qui est en cours de modification dans une zone de texte qui est également utilisé pour soumettre les changements à la base de données, mais quand j'appuie sur submit, les paramètres qui sont affichés sur le formulaire ne changent pas, je ne trouve aucun problème avec le code, même si je l'ai comparé à un code similaire fonctionne bien.

Dans le cas où vous avez besoin, voici l'une des zones de texte que je utilise pour afficher et modifier le contenu:

<asp:TextBox ID="JustifBox" TextMode="MultiLine" runat="server" Width="250" Height="50"></asp:TextBox> 

Quel est le problème exactement avec le code?

EDIT: J'ai oublié de mentionner que lorsque j'ai tracé la fonction, il est apparu que le contenu des contrôles ne changeait pas lorsque je les soumettais, mais qu'ils étaient resoumis comme s'ils étaient inchangés dans leur forme originale.

+0

Quels sont les paramètres mis à jour et ceux qui ne le sont pas? – Restuta

+0

Peut-être êtes-vous en train de les mettre à jour avec les mêmes valeurs? – Restuta

+0

les valeurs qui changent sont celles liées aux contrôles, le problème semble que le contenu des contrôles ne change pas, même si je les édite. – Viredae

Répondre

0

Vous avez mentionné deux problèmes:

1) Les champs de la base de données ne sont pas mis à jour lorsque la mise à jour effectuée

2) L'interface utilisateur est pas mis à jour avec les dernières données

d'abord aborder la Requête SQL UPDATE Quels champs ne sont pas mis à jour? Copiez coller la requête T-SQL dans l'analyseur de requête, puis vérifiez quel champ est mis à jour et lequel ne l'est pas. En outre, votre code est OUVERT aux injections SQL alors lisez à ce sujet et puis ajustez le code.

Pour que l'interface utilisateur ne soit pas mise à jour, vous devez vérifier si vous remplissez même les champs de l'interface utilisateur avec l'objet correct.

+0

1) comme je l'ai mentionné dans l'édition, j'ai tracé la requête SQL, et tout a été mis à jour, mais le problème est que le même objet était, pour une raison quelconque, inédit (problème IOW # 2). 2) Comme je l'ai mentionné (encore), les contrôles prennent les valeurs des champs correctement, vous êtes censé éditer avec ces contrôles et ils sont censés retourner la valeur des contrôles lorsque vous appuyez sur le bouton soumettre, et ils sont soumis, mais pour une raison quelconque, les contrôles ne reconnaissent pas que leurs valeurs ont changé lorsque j'appuie sur le bouton pour une raison quelconque. – Viredae