asp.net Web 应用程序中的文本框控件存在问题。没有从文本框中获取文本以进行更新
Problem with Textboxes control in asp.net web application. Didn't get text from textboxes for update
我有一个表格 AdminHome.aspx
。当用户登录时,然后在 AdminHome.aspx
页面 Load
事件中,该用户的配置文件数据从数据库加载并填充相应的 Textboxes
。我有 Update User Information
的 Button
控件。 User
登录后,Home Page
是这样的。这是图片。
现在,当我将名称从 INTERN
更改为 Trainee
时。这是图片
然后点击 Update My Profile
按钮。它不显示 Errors
或 Exceptions
,而是显示消息 Record Update Successfully
。但是当我在数据库中检查它时,它没有更新。把它放在 debug mood
之后,我开始知道它从 Textboxes
中获取旧值,我的意思是我将 Designation
的值从 INTERN
更改为 TRAINEE
但仍然需要 INTERN
。这是图片
以下是我的 update Button
代码
protected void btnUpdateProfile_Click(object sender, EventArgs e)
{
try
{
UpdateUser();
}
catch (Exception ex)
{
ShowNotification("Error: " + ex + "", WarningType.Danger);
}
}
private void UpdateUser()
{
using (SqlConnection con = new SqlConnection(Base.GetConnection))
{
using (SqlCommand cmd = new SqlCommand("UPDATE TableUserProfile SET UserName=@UserName,UserContact=@UserContact,UserDesignation=@UserDesignation,UserDepartment=UserDepartment WHERE UserEmpNum=@UserEmpNum", con))
{
string Uname, UContact, UDesignation, UDepartment, UEmployeeNo;
Uname = tbName.Value.ToUpper();
UContact = tbMobileNo.Value.ToUpper();
UDesignation = tbDesignation.Value.ToUpper();
UDepartment = tbDepartment.Value.ToUpper();
UEmployeeNo = tbEmployeeNo.Value.ToUpper();
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@UserName", Uname);
cmd.Parameters.AddWithValue("@UserContact", UContact);
cmd.Parameters.AddWithValue("@UserDesignation", UDesignation);
cmd.Parameters.AddWithValue("@UserDepartment", UDepartment);
cmd.Parameters.AddWithValue("@UserEmpNum", UEmployeeNo);
con.Open();
cmd.ExecuteNonQuery();
ShowNotification("Succes: Record Saved Succesfully!", WarningType.Success);
}
}
}
这里是 .aspx
代码。
<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-10">
<h4>Your Profile</h4>
<hr />
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group row">
<label for="username" class="col-4 col-form-label">Name*</label>
<div class="col-6">
<input runat="server" id="tbName" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Mobile Number</label>
<div class="col-6">
<input runat="server" id="tbMobileNo" class="form-control here" type="text" />
</div>
</div>
<div class="form-group row">
<label for="lastname" class="col-4 col-form-label">Employee Number</label>
<div class="col-6">
<input runat="server" id="tbEmployeeNo" class="form-control here" readonly="True" type="text" aria-readonly="True" aria-disabled="True" />
</div>
</div>
<div class="form-group row">
<label for="text" class="col-4 col-form-label">Designation</label>
<div class="col-6">
<input runat="server" id="tbDesignation" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<label for="text" class="col-4 col-form-label">Department</label>
<div class="col-6">
<input runat="server" id="tbDepartment" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<div class="offset-4 col-8">
<asp:Button runat="server" ID="btnUpdateProfile" Text="Update My Profile" class="btn btn-primary" OnClick="btnUpdateProfile_Click"></asp:Button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</asp:Content>
这是 PageLoad
代码。
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserEmployee"] != null)
{
userEmployeeNumber = Convert.ToString(Session["UserEmployee"]);
GetUserData();
ShowNotification("Welcome! Mr/Mrs " + EmployeeID.UserName.ToString() + "", WarningType.Success);
}
}
private void GetUserData()
{
using (SqlConnection con = new SqlConnection(Base.GetConnection))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("SELECT [UserName],[UserContact],[UserEmpNum],[UserDesignation],[UserDepartment] FROM TableUserProfile WHERE UserEmpNum=@UserEmpNum", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("UserEmpNum", userEmployeeNumber);
SqlDataReader r = cmd.ExecuteReader();
while (r.Read())
{
tbName.Value = r["UserName"].ToString();
EmployeeID.UserName = tbName.Value.ToString();
tbMobileNo.Value = r["UserContact"].ToString();
tbEmployeeNo.Value = r["UserEmpNum"].ToString();
tbDesignation.Value = r["UserDesignation"].ToString();
tbDepartment.Value = r["UserDepartment"].ToString();
}
}
}
}
在您的 Page_Load 中,您必须检查 IsPostBack
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if (Session["UserEmployee"] != null)
{
userEmployeeNumber = Convert.ToString(Session["UserEmployee"]);
GetUserData();
ShowNotification("Welcome! Mr/Mrs " + EmployeeID.UserName.ToString() + "", WarningType.Success);
}
}
}
否则在每次页面加载时,您的文本框数据都会使用 DB 值进行更新
我有一个表格 AdminHome.aspx
。当用户登录时,然后在 AdminHome.aspx
页面 Load
事件中,该用户的配置文件数据从数据库加载并填充相应的 Textboxes
。我有 Update User Information
的 Button
控件。 User
登录后,Home Page
是这样的。这是图片。
现在,当我将名称从 INTERN
更改为 Trainee
时。这是图片
Update My Profile
按钮。它不显示 Errors
或 Exceptions
,而是显示消息 Record Update Successfully
。但是当我在数据库中检查它时,它没有更新。把它放在 debug mood
之后,我开始知道它从 Textboxes
中获取旧值,我的意思是我将 Designation
的值从 INTERN
更改为 TRAINEE
但仍然需要 INTERN
。这是图片
update Button
代码
protected void btnUpdateProfile_Click(object sender, EventArgs e)
{
try
{
UpdateUser();
}
catch (Exception ex)
{
ShowNotification("Error: " + ex + "", WarningType.Danger);
}
}
private void UpdateUser()
{
using (SqlConnection con = new SqlConnection(Base.GetConnection))
{
using (SqlCommand cmd = new SqlCommand("UPDATE TableUserProfile SET UserName=@UserName,UserContact=@UserContact,UserDesignation=@UserDesignation,UserDepartment=UserDepartment WHERE UserEmpNum=@UserEmpNum", con))
{
string Uname, UContact, UDesignation, UDepartment, UEmployeeNo;
Uname = tbName.Value.ToUpper();
UContact = tbMobileNo.Value.ToUpper();
UDesignation = tbDesignation.Value.ToUpper();
UDepartment = tbDepartment.Value.ToUpper();
UEmployeeNo = tbEmployeeNo.Value.ToUpper();
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@UserName", Uname);
cmd.Parameters.AddWithValue("@UserContact", UContact);
cmd.Parameters.AddWithValue("@UserDesignation", UDesignation);
cmd.Parameters.AddWithValue("@UserDepartment", UDepartment);
cmd.Parameters.AddWithValue("@UserEmpNum", UEmployeeNo);
con.Open();
cmd.ExecuteNonQuery();
ShowNotification("Succes: Record Saved Succesfully!", WarningType.Success);
}
}
}
这里是 .aspx
代码。
<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<div class="container">
<div class="row">
<div class="col-md-8">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-10">
<h4>Your Profile</h4>
<hr />
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group row">
<label for="username" class="col-4 col-form-label">Name*</label>
<div class="col-6">
<input runat="server" id="tbName" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<label for="name" class="col-4 col-form-label">Mobile Number</label>
<div class="col-6">
<input runat="server" id="tbMobileNo" class="form-control here" type="text" />
</div>
</div>
<div class="form-group row">
<label for="lastname" class="col-4 col-form-label">Employee Number</label>
<div class="col-6">
<input runat="server" id="tbEmployeeNo" class="form-control here" readonly="True" type="text" aria-readonly="True" aria-disabled="True" />
</div>
</div>
<div class="form-group row">
<label for="text" class="col-4 col-form-label">Designation</label>
<div class="col-6">
<input runat="server" id="tbDesignation" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<label for="text" class="col-4 col-form-label">Department</label>
<div class="col-6">
<input runat="server" id="tbDepartment" class="form-control here" required="required" type="text" />
</div>
</div>
<div class="form-group row">
<div class="offset-4 col-8">
<asp:Button runat="server" ID="btnUpdateProfile" Text="Update My Profile" class="btn btn-primary" OnClick="btnUpdateProfile_Click"></asp:Button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</asp:Content>
这是 PageLoad
代码。
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserEmployee"] != null)
{
userEmployeeNumber = Convert.ToString(Session["UserEmployee"]);
GetUserData();
ShowNotification("Welcome! Mr/Mrs " + EmployeeID.UserName.ToString() + "", WarningType.Success);
}
}
private void GetUserData()
{
using (SqlConnection con = new SqlConnection(Base.GetConnection))
{
con.Open();
using (SqlCommand cmd = new SqlCommand("SELECT [UserName],[UserContact],[UserEmpNum],[UserDesignation],[UserDepartment] FROM TableUserProfile WHERE UserEmpNum=@UserEmpNum", con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("UserEmpNum", userEmployeeNumber);
SqlDataReader r = cmd.ExecuteReader();
while (r.Read())
{
tbName.Value = r["UserName"].ToString();
EmployeeID.UserName = tbName.Value.ToString();
tbMobileNo.Value = r["UserContact"].ToString();
tbEmployeeNo.Value = r["UserEmpNum"].ToString();
tbDesignation.Value = r["UserDesignation"].ToString();
tbDepartment.Value = r["UserDepartment"].ToString();
}
}
}
}
在您的 Page_Load 中,您必须检查 IsPostBack
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if (Session["UserEmployee"] != null)
{
userEmployeeNumber = Convert.ToString(Session["UserEmployee"]);
GetUserData();
ShowNotification("Welcome! Mr/Mrs " + EmployeeID.UserName.ToString() + "", WarningType.Success);
}
}
}
否则在每次页面加载时,您的文本框数据都会使用 DB 值进行更新