我正在做一個專案。在這個頁面中,當用戶單擊此頁面時,它會從 Dababase 獲取資料并填寫文本框,這是 UserProfile 頁面。如果用戶想要更新他們可以更新的資料。 但問題是它從文本框中獲取舊值
組態檔.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Content/MasterPage.master" AutoEventWireup="true" CodeFile="Profile.aspx.cs" Inherits="AdminSide_Profile" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<link rel="stylesheet" href="../CSS/profilecss.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="Server">
<div class="container rounded bg-white mt-5 mb-5">
<div class="row">
<div class="col-md-3 border-right">
<div class="d-flex flex-column align-items-center text-center p-3 py-5">
<%--<span class="font-weight-bold">First User</span>--%>
<%--<span class="text-black-50">[email protected]</span>--%>
<asp:Label ID="lblUser" runat="server" CssClass="font-weight-bold" EnableViewState="false"></asp:Label>
</div>
</div>
<div class="col-md-5 border-right">
<div class="p-3 py-5">
<div class="d-flex justify-content-between align-items-center mb-3">
<h4 class="text-right">Profile Settings</h4>
</div>
<div class="row mt-2">
<div class="col-md-12">
<label class="labels">Name</label>
<asp:TextBox ID="txtName" runat="server" CssClass="form-control" PlaceControl="Enter User Name"></asp:TextBox>
<%--<input type="text" class="form-control" placeholder="Name" value="">--%>
</div>
</div>
<div class="row mt-3">
<div class="col-md-12">
<label class="labels">Mobile Number</label>
<asp:TextBox ID="txtMobileNumber" runat="server" CssClass="form-control" PlaceControl="Enter User Name"></asp:TextBox>
</div>
<div class="col-md-12">
<label class="labels">Email ID</label>
<asp:TextBox ID="txtEmail" runat="server" CssClass="form-control" PlaceControl="Enter User Name"></asp:TextBox>
</div>
<div class="col-md-12">
<label class="labels">Password</label>
<asp:TextBox ID="txtPassword" runat="server" CssClass="form-control" auto PlaceControl="Enter Password Name"></asp:TextBox>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:Label ID="lblMessage" runat="server" EnableViewState="false"></asp:Label>
</div>
</div>
<div class="mt-5 text-center">
<%--<button class="btn btn-primary profile-button" type="button">Save Profile</button>--%>
<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="btn btn-primary profile-button" OnClick="btnSave_Click" />
</div>
</div>
</div>
</div>
</div>
</asp:Content>
組態檔.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InterviewPrepration.BAL;
using InterviewPrepration.ENT;
using InterviewPrepration.DAL;
using System.Data.SqlTypes;
public partial class AdminSide_Profile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserID"] != null)
{
UserBAL baluser = new UserBAL();
UserENT entuser = new UserENT();
entuser = baluser.SelectByID(Convert.ToInt32(Session["UserID"].ToString().Trim()));
txtName.Text = entuser.User_Name.Value.ToString();
txtMobileNumber.Text = entuser.ContactNo.Value.ToString();
txtEmail.Text = entuser.Email_ID.Value.ToString();
txtPassword.Text = entuser.Password.Value.ToString();
lblUser.EnableViewState = true;
lblUser.Text = entuser.User_Name.Value.ToString();
}
if (Session["UserID"] == null)
{
Response.Redirect("~/AdminSide/Login.aspx");
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
String err = "";
if (txtName.Text.Trim() == "")
{
err = "Please Enter Name";
}
if (txtEmail.Text.Trim() == "")
{
err = "Please Enter EmailId";
}
if (txtMobileNumber.Text.Trim() == "")
{
err = "Please Enter Mobile Number";
}
if (err != "")
{
lblMessage.EnableViewState = true;
lblMessage.Text = err.ToString();
}
UserENT entuser = new UserENT();
if(txtName.Text.Trim() != "")
{
entuser.User_Name = txtName.Text.Trim();
}
if (txtMobileNumber.Text.Trim() != "")
{
entuser.ContactNo = txtMobileNumber.Text.Trim();
}
if (txtEmail.Text.Trim() != "")
{
entuser.Email_ID = txtEmail.Text.Trim();
}
if(txtPassword.Text.Trim() != "")
{
entuser.Password = txtPassword.Text.Trim();
}
if(Session["UserID"] != null)
{
entuser.User_ID = Convert.ToInt32(Session["UserID"].ToString());
}
UserBAL baluser = new UserBAL();
if (baluser.Update(entuser))
{
lblMessage.EnableViewState = true;
lblMessage.Text = "Updated Sucessfully";
}
}
}
在特定部分
protected void btnSave_Click(object sender, EventArgs e)
{
UserENT entuser = new UserENT();
if(txtName.Text.Trim() != "")
{
entuser.User_Name = txtName.Text.Trim();
}
if (txtMobileNumber.Text.Trim() != "")
{
entuser.ContactNo = txtMobileNumber.Text.Trim();
}
if (txtEmail.Text.Trim() != "")
{
entuser.Email_ID = txtEmail.Text.Trim();
}
if(txtPassword.Text.Trim() != "")
{
entuser.Password = txtPassword.Text.Trim();
}
if(Session["UserID"] != null)
{
entuser.User_ID = Convert.ToInt32(Session["UserID"].ToString());
}
}
BALUser.cs
#region Update
public Boolean Update(UserENT entuser)
{
UserDAL daluser = new UserDAL();
if (daluser.PR_IP_User_UpdateByUserID(entuser))
{
return true;
}
else
{
Message = daluser.Message;
return false;
}
}
這是一個由 profile.aspx.cs 呼叫的更新方法
DALUser.cs 執行操作(資料庫)的 DAL 檔案。
#region PR_IP_User_UpdateByUserID
public Boolean PR_IP_User_UpdateByUserID(UserENT entuser)
{
using (SqlConnection objConn = new SqlConnection(ConnectionString))
{
objConn.Open();
using (SqlCommand objCmd = objConn.CreateCommand())
{
try
{
#region PrpepredCommand
objCmd.CommandType = CommandType.StoredProcedure;
objCmd.CommandText = "PR_IP_User_UpdateByUserID";
objCmd.Parameters.AddWithValue("@UserID", entuser.User_ID);
objCmd.Parameters.AddWithValue("@UserName", entuser.User_Name);
objCmd.Parameters.AddWithValue("@Password", entuser.Password);
objCmd.Parameters.AddWithValue("@EmailID", entuser.Email_ID);
objCmd.Parameters.AddWithValue("@ContactNo", entuser.ContactNo);
//objCmd.Parameters.AddWithValue("@IsAdmin", entuser.Is_Admin);
#endregion
objCmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
Message = ex.InnerException.Message;
return false;
}
}
}
#endregion
ENTUser.cs檔案
這是用戶的 ent 檔案。
namespace InterviewPrepration.ENT
{
public class UserENT : DataBaseConfig
{
#region Constructor
public UserENT()
{
}
#endregion
#region User ID
protected SqlInt32 _User_ID;
public SqlInt32 User_ID
{
get
{
return _User_ID;
}
set
{
_User_ID = value;
}
}
#endregion
#region User_Name
protected SqlString _User_Name;
public SqlString User_Name
{
get
{
return _User_Name;
}
set
{
_User_Name = value;
}
}
#endregion
#region User_Name
protected SqlString _Password;
public SqlString Password
{
get
{
return _Password;
}
set
{
_Password = value;
}
}
#endregion
#region User_Name
protected SqlString _ContactNo;
public SqlString ContactNo
{
get
{
return _ContactNo;
}
set
{
_ContactNo = value;
}
}
#endregion
#region User_Name
protected SqlString _Email_ID;
public SqlString Email_ID
{
get
{
return _Email_ID;
}
set
{
_Email_ID = value;
}
}
#endregion
#region IsAdmin
protected SqlBoolean _Is_Admin;
public SqlBoolean Is_Admin
{
get
{
return _Is_Admin;
}
set
{
_Is_Admin = value;
}
}
#endregion
}
}
uj5u.com熱心網友回復:
我嘗試了if(!Page.IsPostBack)。我設定了 if 條件。因為在我點擊按鈕之前它已經著火了。
這是更新代碼:profile.aspx.cs
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using InterviewPrepration.BAL;
using InterviewPrepration.ENT;
using InterviewPrepration.DAL;
using System.Data.SqlTypes;
public partial class AdminSide_Profile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
btnSave.Attributes.Add("AutoPostback", "false");
if (!Page.IsPostBack)
{
if (Session["UserID"] != null)
{
UserBAL baluser = new UserBAL();
UserENT entuser = new UserENT();
entuser = baluser.SelectByID(Convert.ToInt32(Session["UserID"].ToString().Trim()));
txtName.Text = entuser.User_Name.Value.ToString();
txtMobileNumber.Text = entuser.ContactNo.Value.ToString();
txtEmail.Text = entuser.Email_ID.Value.ToString();
txtPassword.Text = entuser.Password.Value.ToString();
lblUser.EnableViewState = true;
lblUser.Text = entuser.User_Name.Value.ToString();
}
}
if (Session["UserID"] == null)
{
Response.Redirect("~/AdminSide/Login.aspx");
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
SqlString name, number, email, pass;
SqlInt32 id;
String err = "";
if (txtName.Text.Trim() == "")
{
err = "Please Enter Name";
}
if (txtEmail.Text.Trim() == "")
{
err = "Please Enter EmailId";
}
if (txtMobileNumber.Text.Trim() == "")
{
err = "Please Enter Mobile Number";
}
if (err != "")
{
lblMessage.EnableViewState = true;
lblMessage.Text = err.ToString();
}
UserENT entuser = new UserENT();
if (txtName.Text.Trim() != "")
{
entuser.User_Name = txtName.Text.Trim();
}
if (txtMobileNumber.Text.Trim() != "")
{
entuser.ContactNo = txtMobileNumber.Text.Trim();
}
if (txtEmail.Text.Trim() != "")
{
entuser.Email_ID = txtEmail.Text.Trim();
}
if (txtPassword.Text.Trim() != "")
{
entuser.Password= txtPassword.Text.Trim();
}
if (Session["UserID"] != null)
{
entuser.User_ID = Convert.ToInt32(Session["UserID"].ToString());
}
UserBAL baluser = new UserBAL();
if (baluser.Update(entuser))
{
lblMessage.EnableViewState = true;
lblMessage.Text = "Updated Sucessfully";
}
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
txtName.ReadOnly = false;
txtEmail.ReadOnly = false;
txtMobileNumber.ReadOnly = false;
txtPassword.ReadOnly = false;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523533.html
