J'ai une page * .aspx qui contient une zone de texte et un bouton. Lorsque l'utilisateur entre des informations dans la zone de texte et clique sur "Publier", il insère les données dans ma base de données SQL. Le problème est que, si l'utilisateur clique sur Actualiser, il continuera d'insérer les mêmes données dans la base de données. Je suis à peu près sûr que toute la méthode "clic" est appelée, pas seulement l'appel d'insertion. J'ai essayé de déconner avec des sessions mais il se plaint. Je ne suis pas vraiment sûr de ce qu'il faut faire. Je suis à la recherche d'une solution simple et facile.Asp.Net SQL Actualiser les insertions de la page en double?
protected void PostButton_Click(object sender, EventArgs e)
{
string wpost = (string)Session["WallPost"];
DateTime wtime = (DateTime)Session["WallDateTime"];
if (txtWallPost.Text.Length > 0 && !wpost.Equals(txtWallPost.Text))
{
string strCon = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SocialSiteConnectionString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(strCon))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "INSERT INTO [WallTable] ([UserId], [FriendId], [WallPost]) VALUES (@UserId, @FriendId, @WallPost)";
cmd.Parameters.AddWithValue("@UserId", User.Identity.Name);
cmd.Parameters.AddWithValue("@FriendId", User.Identity.Name);
cmd.Parameters.AddWithValue("@WallPost", txtWallPost.Text);
conn.Open();
cmd.ExecuteNonQuery();
Session.Add("WallPost", txtWallPost.Text);
Session.Add("WallDateTime", new DateTime());
conn.Close();
txtWallPost.Text = "";
LoadWallPosts();
}
}
}
return;
}
duplication possible de [Comment empêcher les publications répétées de perturber ma couche de gestion] (http://stackoverflow.com/questions/481564/how-to-prevent-repeated-postbacks-from-confusing-my-business-layer) –