J'ai créé une forme simple pour afficher un utilisateur détails, avec les champs suivants:Formulaire de mise à jour Non Mise à jour Détails
First Name
Surname
Team Name
Team Stadium
Email
Receive Reminder
Receive Summary
je récupère les détails de l'utilisateur connecté et laissez les champs à éditer à mettre à jour. Toutefois, lorsque l'événement de clic sur le bouton de mise à jour est déclenché, les champs retournent à leurs valeurs d'origine.
Voici mon code en C#
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["RaiseFantasyLeagueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("[dbo].[GetUsersProfile]", conn);
cmd.CommandType = CommandType.StoredProcedure;
string userId = Membership.GetUser().ProviderUserKey.ToString();
SqlParameter userIDParam = new SqlParameter("@userId", userId);
cmd.Parameters.Add(userIDParam);
conn.Open();
SqlDataReader dReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (dReader.Read())
{
FirstName.Text = (dReader["ManagerFirstName"].ToString());
Surname.Text = (dReader["ManagerSurname"].ToString());
TeamName.Text = (dReader["TeamName"].ToString());
StadiumName.Text = (dReader["TeamStadium"].ToString());
Email.Text = (dReader["Email"].ToString());
Reminder.Checked = (bool)dReader["RecieveReminder"];
Prediction.Checked = (bool)dReader["RecieveSummary"];
}
dReader.Close();
conn.Close();
}
protected void UpdateDetailsButton_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["RaiseFantasyLeagueConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("[dbo].[UpdateUserDetails]", conn);
cmd.CommandType = CommandType.StoredProcedure;
string userId = Membership.GetUser().ProviderUserKey.ToString();
SqlParameter userIDParam = new SqlParameter("@userId", userId);
TextBox FirstNameTextBox = (TextBox)Master.FindControl("ContentPlaceHolderMain").FindControl("FirstName");
SqlParameter FirstNameParam = new SqlParameter("@ManagerFirstName", FirstNameTextBox.Text);
TextBox SurnameTextBox = (TextBox)Master.FindControl("ContentPlaceHolderMain").FindControl("Surname");
SqlParameter SurnameParam = new SqlParameter("@ManagerSurname", SurnameTextBox.Text);
TextBox TeamNameTextBox = (TextBox)Master.FindControl("ContentPlaceHolderMain").FindControl("TeamName");
SqlParameter TeamNameParam = new SqlParameter("@TeamName", TeamNameTextBox.Text);
TextBox TeamStadiumNameTextBox = (TextBox)Master.FindControl("ContentPlaceHolderMain").FindControl("StadiumName");
SqlParameter TeamStadiumNameParam = new SqlParameter("@TeamStadium", TeamStadiumNameTextBox.Text);
TextBox EmailTextBox = (TextBox)Master.FindControl("ContentPlaceHolderMain").FindControl("Email");
SqlParameter EmailParam = new SqlParameter("@Email", EmailTextBox.Text);
SqlParameter RecieveReminderParam = new SqlParameter("@RecieveReminder", 1);
SqlParameter RecieveSummaryParam = new SqlParameter("@RecieveSummary", 1);
cmd.Parameters.Add(userIDParam);
cmd.Parameters.Add(FirstNameParam);
cmd.Parameters.Add(SurnameParam);
cmd.Parameters.Add(TeamNameParam);
cmd.Parameters.Add(TeamStadiumNameParam);
cmd.Parameters.Add(EmailParam);
cmd.Parameters.Add(RecieveReminderParam);
cmd.Parameters.Add(RecieveSummaryParam);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
Et pour l'ASP
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">
<div class="row">
<div class="span12">
<h3>
My Profile</h3>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="firstNameTextBox">
First Name:</label>
</div>
<div class="span3">
<asp:TextBox ID="FirstName" runat="server"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="surnameTextBox" >
Surname:</label>
</div>
<div class="span3">
<asp:TextBox ID="Surname" runat="server"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="teamNameTextBox">
Team Name:</label>
</div>
<div class="span3">
<asp:TextBox ID="TeamName" runat="server"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="stadiumNameTextBox">
Stadium Name:</label>
</div>
<div class="span3">
<asp:TextBox ID="StadiumName" runat="server"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="emailTextBox">
Email Address:</label>
</div>
<div class="span3">
<asp:TextBox ID="Email" runat="server"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="reminderCheckBox">
Recieve Reminder Email:</label>
</div>
<div class="span3">
<input type="checkbox" id="Reminder" runat="server"/>
</div>
</div>
<div class="row">
<div class="span2">
<label class="control-label" for="predictionCheckBox">
Recieve Prediction Email:</label>
</div>
<div class="span3">
<input type="checkbox" id="Prediction" runat="server"/>
</div>
</div>
<div class="row">
<div class="span5">
<asp:Button ID="UpdateDetailsButton"
CssClass="btn btn-primary rightAlignButton" runat="server" Text="Confirm"
onclick="UpdateDetailsButton_Click" />
</div>
</div>
J'ai essayé d'utiliser la procédure stockée dans SQL Management Studio et mises à jour comme prévu, Donc, pour une raison quelconque, les champs ne lisent pas les valeurs mises à jour lorsque vous cliquez sur Mettre à jour.
Toutes les suggestions seraient grandes, merci!
Il était en fait si (! Page.IsPostBack), mais merci beaucoup !! – JackofAll