第一步:建立三层,并添加他们之间的引用关系,如下图所示:

第二步:添加GridView表格,并且套用格式样式,如下图所示:

第三步:点击表格右侧的小三角,并选中编辑列,如下图所示:

第四步:添加三个绑定列,并为其绑定上数据,如下图所示:




并且修改命令列的名称为“管理”,做好之后如下图所示:

下面是源代码的整体架构

接下来是所有的源代码:

DiaryModels层的Users


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace DiaryModels
{/// <summary>/// 用户类/// </summary>public class Users{private int _UserID;private string _UserName;private string _password;/// <summary>/// 用户ID/// </summary>public int UserID {get { return _UserID; }set { _UserID = value; }}/// <summary>/// 用户名/// </summary>public string UserName {get { return _UserName; }set { _UserName = value; }}/// <summary>/// 密码/// </summary>public string password {get { return _password; }set { _password = value; }}}
}

DiaryDAL层的UserDAO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using DiaryModels;
using System.Data;
using System.Data.SqlClient;namespace DiaryDAL
{public class UserDAO{Helper help = new Helper();/// <summary>/// 添加一条用户信息/// </summary>/// <param name="user"></param>/// <returns></returns>public bool Add(Users user) {string cmdText = "insert into Users(UserID,UserName,password) values(@UserID,@UserName,@password)";SqlParameter[] param = new SqlParameter[3];param[0]=new SqlParameter("@UserID",user.UserID);param[1] = new SqlParameter("@UserName", user.UserName);param[2] = new SqlParameter("@password", user.password);return help.ExecMake(cmdText, CommandType.Text, param);}/// <summary>/// 删除一条用户信息/// </summary>/// <param name="user"></param>/// <returns></returns>public bool Delete(Users user) {string cmdText = "delete from Users where UserID=@UserID";SqlParameter[] param = new SqlParameter[1];param[0] = new SqlParameter("@UserID", user.UserID);return help.ExecMake(cmdText, CommandType.Text, param);}/// <summary>/// 修改一条用户信息/// </summary>/// <param name="user"></param>/// <returns></returns>public bool Modify(Users user) {string cmdText = "update Users set UserName =@UserName,password =@password where UserID =@UserID";SqlParameter[] param = new SqlParameter[3];param[0] = new SqlParameter("@UserName", user.UserName);param[1] = new SqlParameter("@password", user.password);param[2] = new SqlParameter("@UserID", user.UserID);return help.ExecMake(cmdText, CommandType.Text, param);}public DataTable Select() {string cmdText = "select * from Users";return help.ExecSelect(cmdText, CommandType.Text);}}
}

DiaryDAL层的Helper类


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace DiaryDAL
{public class Helper{/// <summary>/// 执行带参数的增删改语句/// </summary>/// <param name="cmdText"></param>/// <param name="Paras"></param>/// <returns></returns>public bool ExecMake(string cmdText, CommandType Cmdtype, SqlParameter[] Paras){SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);con.Open();//对SqlCommand对象进行初始化SqlCommand SqlComm = new SqlCommand(cmdText, con);SqlComm.CommandType = Cmdtype;//对参数赋值SqlComm.Parameters.AddRange(Paras);//执行命令SqlComm.ExecuteNonQuery();con.Close();return true;}/// <summary>/// 执行不带参数的查询语句/// </summary>/// <param name="cmdText"></param>/// <param name="Paras"></param>/// <returns></returns>public DataTable ExecSelect(string cmdText, CommandType Cmdtype){SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);con.Open();//对SqlCommand对象进行实例化SqlCommand SqlComm = new SqlCommand(cmdText, con);SqlComm.CommandType = Cmdtype;//给参数赋值SqlComm.CommandTimeout = 10000;//返回DataReader对象SqlDataReader DataReader = SqlComm.ExecuteReader();DataTable Dt = new DataTable();//返回DataTable对象Dt.Load(DataReader);//返回数据表con.Close();return Dt;}}
}

业务逻辑层DiaryBLL的UserManager没有进行判断,读者明白意思即可

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DiaryModels;
using DiaryDAL;namespace DiaryBLL
{public class UserManager{UserDAO userdao = new UserDAO();public bool Add(Users user) {return userdao.Add(user);}public bool Delete(Users user) {return userdao.Delete(user);}public bool Modify(Users user) {return userdao.Modify(user);}public DataTable Select() {return userdao.Select();}}
}

表示层:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DiaryModels;
using DiaryBLL;public partial class _Default : System.Web.UI.Page
{UserManager usermgr = new UserManager();Users user = new Users();//为表格绑定数据源private void Bind() {GridView1.DataSource = usermgr.Select();GridView1.DataBind();}protected void Page_Load(object sender, EventArgs e){if (!IsPostBack) {Bind();}}//添加用户信息protected void btnOk_Click(object sender, EventArgs e){user.UserID = Convert.ToInt16( txtUserID.Text);user.UserName = txtUserName.Text;user.password = txtPassword.Text;if (usermgr.Add(user)){Response.Write("<script>('添加成功!')</script>");Bind();}else {Response.Write("<script>('添加失败!')</script>");}}protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){user.UserID = Convert.ToInt16(((GridView1.Rows[e.RowIndex].FindControl("Label1") as Label).Text));if (usermgr.Delete(user)){Response.Write("<script>('删除成功!')</script>");Bind();}else {Response.Write("<script>('删除失败!')</script>");}}
//让当前行处于修改状态protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){GridView1.EditIndex = e.NewEditIndex;Bind();}//取消编辑protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){GridView1.EditIndex = -1;Bind();}//更新至数据库protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e){user.UserID = Convert.ToInt16((GridView1.Rows[e.RowIndex].FindControl("Label1")as Label).Text);user.UserName = (GridView1.Rows[e.RowIndex].FindControl("TextBox2") as TextBox).Text;user.password = (GridView1.Rows[e.RowIndex].FindControl("TextBox3") as TextBox).Text;if (usermgr.Modify(user)){Response.Write("<script>('修改成功!')</script>");GridView1.EditIndex = -1;Bind();}else {Response.Write("<script>('修改失败!')</script>");}}
}

GridView控件实现增删改查相关推荐

  1. 前端VUE【实战】—— antd tree树形控件进行增删改查父子节点

    个人博客:前端江太公 前言 antd 对树形控件目录进行增删改查 最近在用Ant Design写一个后台,遇到的需求就是实现一个可动态增减和编辑子节点的Tree. 实现的效果如下: 可以增加父子节点 ...

  2. xml gridview控件增删改查_Mybatis之XML如何映射到方法

    前言 上文Mybatis之方法如何映射到XML中介绍了Mybatis是如何将方法进行分拆出方法名映射到statementID,参数如何解析成xml中sql所需要的,以及返回类型的处理:本文将从XML端 ...

  3. ASP GridView控件绑定数据进行数据的增删改查

    1.新建一个空项目,添加Web窗体FindUser,在前台设计中拖入GridView控件,在编辑列中设计BoundField,HeaderText属性设置表头文本,DataField属性设置为要显示的 ...

  4. Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】

    前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...

  5. html增删改查按钮控件,HTML DOM节点的增删改查

    上篇博客中,我们已经初步接触了DOM基础,可是我们学习是为了可以更好地应用,今天我们就来看看DOM节点的增删改查. 无论在哪里,我们想要操作一个东西,总是应该先去获得它.那么我们怎么获得呢? HTML ...

  6. GridView的常用操作(增删改查)

    GridView的常用操作(增删改查) void BindData()         {             string sql = "select top 10 ID,jobno, ...

  7. ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能

    ASP.NET Web--GridView 完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能 环境说明 系统要求:win7/10/11 开发语言:C# 开发工具:Visual Studio ...

  8. WebForm实现增删改查

    上文,我们使用pb和c#WinForm使用分别实现了增删改查,本文,我们C#WebForm技术来实现一下.首先,说明一点,WinForm和WebForm基本是一样,代码基本雷同,就是使用的控件不一样, ...

  9. ASP.NET操作简单的xml,增删改查

    温习一下对xml的简单操作,贴出来收藏 xml文件格式: <?xml version="1.0" encoding="utf-8"?> <st ...

最新文章

  1. oracle 统计信息字典表,Oracle数据字典表查询
  2. Rocksdb 写流程,读流程,WAL文件,MANIFEST文件,ColumnFamily,Memtable,SST文件原理详解
  3. k-近邻算法之距离度量
  4. go语言培训班多少钱
  5. python3.7.2安装-Centos7.6,安装python3.7.2
  6. 【风控术语】数字金融欺诈行为名词表
  7. 【杂谈】如何在言有三本人的随时答疑下, 长期而系统地学习深度学习和计算机视觉,这是有三AI的完整计划...
  8. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...
  9. abstract class和interface有什么区别?
  10. poj 3061(尺取法)
  11. 八十五、Python | Leetcode数据结构之图和动态规划算法系列
  12. 拳王虚拟项目公社:闲鱼知乎引流售卖虚拟资源的虚拟副业项目实操
  13. GraphicsStatsService之2 UI绘制的时间信息来源
  14. DICOM医学图像处理:Orthanc Plugin SDK实现WADO服务
  15. 制作一个App的完整流程是哪些
  16. 团队建设(Team building)就是等于组织大家一起吃饭娱乐吗?
  17. 如何查找视频文件 android,如何扫描出android手机中所有的视频文件
  18. PERCENTILE_CONT
  19. python爬取海量精美高清漂酿纯真可爱善良小姐姐壁纸(老司机福利)
  20. 罗马数字 古罗马数字转换为阿拉伯数字

热门文章

  1. Thinkphp 报错 SQLSTATE [HY000] [1040] Too many connections
  2. iphone 中国移动卡 ios5 ios6 个人热点 开启方法
  3. 5. iOS打包上传后不显示
  4. 程序员的成长阶梯和级别定义
  5. 10种方法解析LOGO设计中的中文字体设计
  6. 读书三得:向钱穆大师学习读书方法
  7. 标点符号的英文名翻译
  8. Android中的文件存储问题
  9. 2023年带大家偷偷盘点一下各大互联网公司的实习薪资
  10. 白敬亭出任Crocs全球时尚代言人