一.说明

此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,谢谢大家.

这一篇要练习的是,如下课程的代码:

二.登录界面(index.aspx)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="MyMusci.index" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><style>.linkBtn {padding:0px 20px;}</style>
</head>
<body><form id="form1" runat="server"><div><asp:LinkButton ID="LinkButton1" runat="server" CssClass="linkBtn">发现音乐</asp:LinkButton><asp:LinkButton ID="LinkButton2" runat="server" CssClass="linkBtn">我的主页</asp:LinkButton><asp:LinkButton ID="LinkButton3" runat="server" CssClass="linkBtn" PostBackUrl="~/Home.aspx">个人中心</asp:LinkButton></div></form>
</body>
</html>

后台逻辑:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace MyMusci
{public partial class index : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){//如果Session对象为空,则退回至登录界面if (Session["userName"] == null){Response.Write("<script>alert('您的登录已过时,请重新登录!!!')</script>");Response.Redirect("login_new.aspx");}}}
}

这里只时简单的给几个超链接控件,并不是重点,后续再作优化.

三.个人中心(Home.aspx)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="MyMusci.Home" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><link href="bootstrap-5.1.3-dist/css/bootstrap.css" rel="stylesheet" /><script src="bootstrap-5.1.3-dist/js/bootstrap.bundle.js"></script><style>.img {height:126px;width:126px;}</style>
</head>
<body><form id="form1" runat="server"><div class="container"><table class="table"><tbody><tr><td>账号</td><td><asp:Label ID="userId" runat="server"></asp:Label></td><td rowspan="3"><asp:Image ID="userPhoto" runat="server" CssClass="img" /><br /><%--文件上传控件--%><asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="btnUpload_Click" /></td></tr><tr><td>昵称</td><td><asp:TextBox ID="userNetname" runat="server"></asp:TextBox></td></tr><tr><td>性别</td><td><asp:DropDownList ID="userSex" runat="server"><asp:ListItem Value="true">男</asp:ListItem><asp:ListItem Value="false">女</asp:ListItem></asp:DropDownList></td></tr><tr><td>签名</td><td><asp:TextBox ID="userSign" runat="server" Height="101px" TextMode="MultiLine"></asp:TextBox></td></tr><tr><td>年龄</td><td><asp:TextBox ID="userAge" runat="server"></asp:TextBox></td></tr></tbody></table><asp:Button ID="sub_Btn" runat="server" Text="编辑" class="btn btn-primary" OnClick="sub_Btn_Click" /></div></form>
</body>
</html>

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.Data;
using Model;namespace MyMusci
{public partial class Home : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){//防止用户直接进入用户中心if (Session["userName"] == null){Response.Redirect("login_new.aspx");}else {//将数据库中的值赋值于页面的控件中if (!IsPostBack){GetUser();}}}private void GetUser(){//读取Session,从数据库中获取相应的数据string nameid = Session["userName"].ToString();string sql = "select * from user_all where user_Name=?userName";Hashtable ht = new Hashtable();ht.Add("userName", nameid);DataTable dt = ToolMysqlDate.executTable(sql, ht);userId.Text = nameid;userNetname.Text = dt.Rows[0]["u_nick"].ToString();//下拉列表选中FindByValue,则时要选中的value值//将数据库返回的BOOL值转换字符串后,再判断哪一项被选中userSex.Items.FindByValue(dt.Rows[0]["u_sex"].ToString()=="True"?"true":"false").Selected = true;userSign.Text = dt.Rows[0]["u_sign"].ToString();userAge.Text = dt.Rows[0]["u_age"].ToString();userPhoto.ImageUrl= dt.Rows[0]["u_photo"].ToString();}//上传图片按钮点击事件protected void btnUpload_Click(object sender, EventArgs e){//判断是否有图片if (FileUpload1.HasFile){//获取文件名string imgName = FileUpload1.FileName;//添加时间参数,可以规避掉图片重名问题imgName = DateTime.Now.ToString("yyyymmddhhmmss")+ imgName;//图片上传的地址(路径)FileUpload1.SaveAs(Server.MapPath("\\user_img\\") + imgName);//显示到图片框上userPhoto.ImageUrl = "\\user_img\\" + imgName;}else {Response.Write("<script>alert('需要先选择图片,再上传')</script>");}}//编辑按钮提交事件protected void sub_Btn_Click(object sender, EventArgs e){//修改数据库中的值string sql = "update user_all set " +"u_Nick=?u_Nick,u_sex=?u_sex,u_Sign=?u_Sign,u_age=?u_age,u_photo=?u_photo " +"where user_name=?user_name";//这是我们自己创建的类,记得引用using Model;Model是我们自己创建的类库DataUser us = new DataUser();//给中间实体类赋值us.user_name = userId.Text;us.u_Nick = userNetname.Text;//判断下拉列表选中的数据,并提取,然后将其转换为int 类型,1为True,0为Falseus.u_sex = userSex.SelectedValue== "true"?1:0;us.u_Sign = userSign.Text;us.u_age = Convert.ToInt32(userAge.Text);us.u_photo = userPhoto.ImageUrl;Hashtable ht = new Hashtable();//参数的赋值ht.Add("user_name", us.user_name);ht.Add("u_Nick", us.u_Nick);ht.Add("u_sex", us.u_sex);ht.Add("u_Sign", us.u_Sign);ht.Add("u_age", us.u_age);ht.Add("u_photo", us.u_photo);//调用增删改方法int result = ToolMysqlDate.executeSql(sql, ht);//向用户提示信息if (result > 0){Response.Write("<script>alert('信息修改成功')</script>");}else {Response.Write("<script>alert('信息修改失败')</script>");}}}
}

四.ToolMysqlDate.cs增加方法

我们在之前的ToolMysqlDate.cs中添加如下方法:

//从数据库查询数据并将数据返回为DataTable类型
public static DataTable executTable(String sql, Hashtable ht) {MySqlDataAdapter mda = new MySqlDataAdapter(sql, conn);//把ht传递过来之后,需要给参数赋值;foreach (DictionaryEntry de in ht){//第一个参数:key;第二个参数:value值mda.SelectCommand.Parameters.AddWithValue(de.Key.ToString(), de.Value.ToString());}DataTable dt = new DataTable();mda.Fill(dt);return dt;
}

五.创建类库(Model)

首先,我们右击项目/添加/新建项目



然后添加/新建项:

里面填充的是数据库的字段的内容,大家需要根据自己创建的数据库字段,作相应的调整:

using System;
using System.Collections.Generic;
using System.Text;namespace Model
{public class DataUser{public int id { get; set; }public string user_name { get; set; }public string user_pwd { get; set; }public string u_Nick { get; set; }//这里将原本booL类型的字段更改为int字段,因为使用上面的修改数据库方法,是没有办法传递bool类型的//改为int 类型后,数据库会字段的将其转换为bool类型,这样我们修改的时候就不会出错了public int u_sex { get; set; }public string u_photo { get; set; }public DateTime u_time { get; set; }public string u_Sign { get; set; }public int u_age { get; set; }}
}

数据库的字段信息内容:

然后我们右击引用/添加引用:


创建一个存储用户头像的文件夹(user_img):

这样就大功告成了.

六.效果

这是我们登录后的简陋首页:

然后我们进入用户中心就可以修改操作了:

对应的数据库数据:

ASP.net 个人中心模块相关推荐

  1. 手把手带你撸一个校园APP(五):新闻中心模块

    这个项目是很早之前在学校做的,如今再回首.很多代码很是粗糙,逻辑也不尽完善.还望各位看官海涵. 前言 通过上一篇文章的功能设计,我们可以发现新闻通知公告等是APP的最主要功能点.主要是聚合展示学校官网 ...

  2. freeswitch的呼叫中心模块——mod_callcenter

    freeswitch的呼叫中心模块很方便的就可以让用户体验这种呼叫中心模式,包含了很多功能,具体参数的配置在使用中自行摸索. 编译安装freeswitch时需要开启mod_callcenter.mod ...

  3. 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册

    阿里云短信Demo演示 一.前端部分 无前端. 二.后端部分 1.创建发送短信测试模块SmsSendDemo,不用使用骨架. 2.在pom文件中引入依赖坐标 <dependency>< ...

  4. 【Android项目实战 | 从零开始写app(十三)】实现用户中心模块清除token退出登录信息修改等功能

    五一后,被ji金伤了,哇呜呜,还是得苦逼老老实实打工写代码,看下面吧 本篇实现效果: 实现登录用户名展示到用户中心页面上,并且页面有个人信息,订单列表,修改密码,意见反馈发送到服务端,前面登录后,通过 ...

  5. Spring Boot项目学习15之我的主页和用户中心模块

    1.我的主页模块 index.html页面右上角个人信息按钮可以跳转至我的首页. 1.1 BBSUserController控制器 这里需要查询用户的基本信息,然后用户发过的帖子信息,以及收藏过的帖子 ...

  6. React项目实战之租房app项目(十)个人中心模块登录访问控制项目打包部署上线

    前言 目录 前言 一.个人中心模块 1.1 个人中心模块效果图 1.2 个人中心模块基础布局 1.2 个人中心模块功能实现 1.2.1 判断用户是否登陆 1.2.2 退出功能 二.登录访问控制 2.1 ...

  7. asp.net core权限模块的快速构建

    大部分系统都会有权限模块,别人家系统的权限怎么生成的我不知道,我只知道这样做是可以并且挺好的. 文章中只对asp.net core的部分代码进行说明 呃 记录~,mvc版本自行前往仓库查阅 代码中的一 ...

  8. ASP.NET用户登录模块代码

    1.验证用户登录:     public static bool ValidateUser(string UserName,string UserPwd)     {         bool Fla ...

  9. php模块下载,douphp下载中心模块修改版

    [实例简介] 网上购买版本上传只能添加上传路径,不能上传文件,此版本设置为可以上传文件,可以修改.修改后新的文件会覆盖旧的,如果不上传不修改. [实例截图] [核心代码] a1d74c72-16e8- ...

最新文章

  1. SQL server中SET ANSI_PADDING对char、varchar、nvarchar的影响
  2. MaxCompute Tunnel SDK数据上传利器——BufferedWriter使用指南
  3. 参数调用不会改变参数值
  4. 大学生计算机专业英语,《计算机专业英语》习题含答案(大学期末复习资料).doc...
  5. 【赠书】五一假期福利,OpenCV4最新原理与实战书籍
  6. PHP 设计模式 笔记与总结(8)策略模式
  7. 让你瞬间提高工作效率的常用js函数汇总
  8. 查看进程占用的端口号,同时杀死此进程
  9. 数据分析——十大数据分析模型
  10. 当棋牌遇到Web3,Immortal Games能让国际象棋流行起来么
  11. 皮皮虾小视频怎么去水印
  12. 关于用c语言演奏《天空之城》那些事
  13. 11讲项目实战首页右侧悬浮框及内页面包屑导航
  14. JS实现京东表单注册
  15. option样式美化 css,CSS select样式优化
  16. 【报告分享】2021年618全面复盘报告-魔镜市场情报(附下载)
  17. C++/MFC 面试题(一)
  18. 自动化立体仓库使用流程!海格里斯自动化立体库流程:入库——出库——拣选
  19. 使用Python3将word文档和pdf电子书进行格式互转(兼容Windows/Linux)
  20. 孙子定理(中国剩余定理)

热门文章

  1. always @(*) 中‘*’所代表的意思
  2. 长达半年的苹果发布会:亮点与槽点(iPhone5s,iPhone5c)
  3. AOP面向切面编程简单使用
  4. 无线网密码怎么改服务器停用,无线网怎么修改密码?更改无线网密码的操作步骤...
  5. Python 是怎么火起来的?
  6. ViewGroup默认不触发onDraw()方法源码分析
  7. android hero动画,Android卡通冒险解谜游戏 《我的小英雄》
  8. 神秘的营销武器,让蕾丝内衣店0元送丝袜,10天收9.6万!
  9. 下载vscode速度慢或无法下载问题解决
  10. PHP echo可写入内容详解