C# 更新表单而不更新详细信息
我创建了一个简单表单来显示用户详细信息,其中包含以下字段:C# 更新表单而不更新详细信息,c#,asp.net,sql,sql-update,C#,Asp.net,Sql,Sql Update,我创建了一个简单表单来显示用户详细信息,其中包含以下字段: First Name Surname Team Name Team Stadium Email Receive Reminder Receive Summary 我检索登录用户的详细信息,并允许编辑字段以进行更新。但是,当“更新”按钮的“单击”事件被触发时,字段将返回其原始值 这是我的C代码# 对于ASP <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceH
First Name
Surname
Team Name
Team Stadium
Email
Receive Reminder
Receive Summary
我检索登录用户的详细信息,并允许编辑字段以进行更新。但是,当“更新”按钮的“单击”事件被触发时,字段将返回其原始值
这是我的C代码#
对于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>
我的个人资料
名字:
姓:
团队名称:
体育场名称:
电邮地址:
收到提醒电子邮件:
接收预测电子邮件:
我已经尝试在SQL Management Studio中使用存储过程,它会按预期进行更新,因此由于某些原因,在单击“更新”时字段不会读取更新的值
任何建议都很好,谢谢 您应该只在第一次从数据库加载数据,因此必须检查它是否不是回发
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadDataFromDatabase();
}
}
private void LoadDataFromDatabase()
{
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();
}
在页面加载事件中使用IsPostBack
if(!IsPostBack)
{
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();
}
if(!IsPostBack)
{
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();
}