一、显示用户列表
1.新建UserInfoController控制器

public ActionResult Index()
{
DataTable table = SQLHelper.ExecuteReader("select UserName, UserPwd from T_UserInfo");
ViewData["table"] = table;
return View();
}

2.新建视图Index

@using System.Data;
@{DataTable table = (DataTable)ViewData["table"];}
<table border="1" style="border-spacing:0px">
<thead><tr><th>用户</th><th>密码</th></tr></thead>
@foreach (DataRow row in table.Rows)
{
<tr>
<td>@row["UserName"]</td>
<td>@row["UserPwd"]</td>
</tr>
}
</table>

二、用户注册
1.在UserInfoController控制器下添加Add方法

public ActionResult Add()
{
return View();
}

2.在Add方法下新建Add视图

<form action="/UserInfo/ProcessAdd" method="post">
<table>
<tr>
<td>用户</td><td><input type="text" name="UserName" /></td>
</tr>
<tr>
<td>密码</td><td><input type="password" name="UserPwd" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="注册用户" /></td>
</tr>
</table>
</form>

3.在UserInfoController控制器下添加ProcessAdd方法

public ActionResult ProcessAdd()
{
string UserName = Request["UserName"];
//int UserPwd = !string.IsNullOrEmpty(Request["UserPwd"]) ? int.Parse(Request["UserPwd"]) : 0;
string UserPwd = Request["UserPwd"];
int r = SQLHelper.ExecuteNonQuery("insert into T_UserInfo(UserName,UserPwd) values(@UserName,@UserPwd)",
new SqlParameter { ParameterName = "@UserName", Value = UserName },
new SqlParameter { ParameterName = "@UserPwd", Value = UserPwd });
if (r <= )
{
return Content("注册失败!!!");
}
return RedirectToAction("Index");
}

三、用属性方式显示用户列表
1.在UserInfoController控制器下添加Show方法

public ActionResult Show()
{
DataTable table = SQLHelper.ExecuteReader("select Id, UserName, UserPwd from T_UserInfo");
List<UserInfo> list = new List<UserInfo>();
foreach (DataRow row in table.Rows)
{
UserInfo userinfo = new UserInfo();
userinfo.Id = (int)row["Id"];
userinfo.UserName = (string)row["UserName"];
userinfo.UserPwd = (string)row["UserPwd"];
list.Add(userinfo);
}
ViewData["UserInfo"] = list;
return View();
}

2.在Show方法下新建Show视图

@using MVCText.Models;
@{
List<UserInfo> user = ViewData["UserInfo"] as List<UserInfo>;
}
<table border="1" style="border-spacing:0px">
<thead><tr><th>用户</th><th>密码</th></tr></thead>
@{
foreach (UserInfo row in user)
{
<tr>
<td>@row.UserName</td>
<td>@row.UserPwd</td>
</tr>
}
}
</table>

四、cshtml页面中获取强类型数据并显示数据库内容
1.在UserInfoController控制器下添加Show方法

public ActionResult Show()
{
UserInfo userinfo = new UserInfo();
userinfo.Id = ;
userinfo.UserName = "张三";
userinfo.UserPwd = "";
ViewData.Model = userinfo;
return View();
}

2.在Show方法下新建Show视图
1)创建类获取
@{
  UserInfo user = ViewData.Model;
}
<h1>@user.Id</h1>
<h2>@user.UserName</h2>
<h3>@user.UserPwd</h3>
2)直接获取Model数据
<h1>@Model.UserName</h1>
<h2>@Model.UserPwd</h2>

五、删除用户

1.在UserInfoController控制器下添加Delete方法

public ActionResult Delete()
{
int id = int.Parse(Request["Id"] ?? "");//如果??左边的值Request["Id"]不为null则直接转,否则将0转为数字
int r = SQLHelper.ExecuteNonQuery("delete from T_UserInfo where Id=@id",
new SqlParameter { ParameterName = "id", Value = id });
if (r > )
{
return RedirectToAction("Show");
}
else
{
return Content("删除失败!!!");
}
}

2.在Show方法下新建Show视图

@{
List<UserInfo> user = ViewData["UserInfo"] as List<UserInfo>;
}
<table border="1" style="border-spacing:0px">
<thead><tr><th>用户</th><th>密码</th><th>删除</th></tr></thead>
@{
foreach (UserInfo row in user)
{
<tr>
<td>@row.UserName</td>
<td>@row.UserPwd</td>
<td><a href="/UserInfo/Delete?Id=@row.Id" style="color:blue">删除</a></td>
</tr>
}
}
</table>

六、修改用户
1.在UserInfoController控制器下添加两个Edit方法并加上HttpGet和HttpPost特性

[HttpGet]
public ActionResult Edit(int Id)
{
DataTable table = SQLHelper.ExecuteReader("select Id,UserName,UserPwd from T_UserInfo where Id=@Id",
new SqlParameter("@id", Id));
UserInfo user = new UserInfo();
user.Id = Convert.ToInt32(table.Rows[]["Id"]);
user.UserName = (string)table.Rows[]["UserName"];
user.UserPwd = (string)table.Rows[]["UserPwd"];
ViewData["UserInfo"] = user;
return View();
} [HttpPost]
public ActionResult Edit(int Id, string UserName, string UserPwd)
{
SQLHelper.ExecuteNonQuery("update T_UserInfo set UserName=@UserName,UserPwd=@UserPwd where Id=@Id",
new SqlParameter("@UserName", UserName),
new SqlParameter("@UserPwd", UserPwd),
new SqlParameter("@id", Id));
return RedirectToAction("Show");
}

2.在Show方法下新建Show视图

@{
List<UserInfo> user = ViewData["UserInfo"] as List<UserInfo>;
}
<table border="1" style="border-spacing:0px">
<thead><tr><th>用户</th><th>密码</th><th>编辑</th><th>删除</th></tr></thead>
@{
foreach (UserInfo row in user)
{
<tr>
<td>@row.UserName</td>
<td>@row.UserPwd</td>
<td><a href="/UserInfo/Edit?Id=@row.Id" style="color:blue">编辑</a></td>
<td><a href="/UserInfo/Delete?Id=@row.Id" style="color:blue">删除</a></td>
</tr>
}
}
</table>

3.在Edit方法下新建Edit视图

@using MVCText.Models;
@{
UserInfo user = ViewData["UserInfo"] as UserInfo;
}
<form action="/UserInfo/Edit?Id=@user.Id" method="post">
<table>
<tr>
<td>用户</td><td><input type="text" name="UserName" value="@user.UserName" /></td>
</tr>
<tr>
<td>密码</td><td><input type="password" name="UserPwd" value="@user.UserPwd" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="保存" /></td>
</tr>
</table>
</form>

MVC增删改查例子的更多相关文章

  1. ASP.NET MVC增删改查

    ASP.NET MVC中的增删改查 基本都要使用C控制器中的两个action来完成操作,一个用于从主界面跳转到新页面.同时将所需操作的数据传到新界面,另一个则对应新界面的按钮,用于完成操作.将数据传回 ...

  2. MVC 增删改查

    MVC内部的增删改查语句都是用Lambda表达式写成的,因此要想使用MVC内部的增删改查就要学会写Lambda表达式. 这里拿表Train来仅作研究: //声明一个表Train的上下文对象 AirSy ...

  3. spring boot2+jpa+thymeleaf增删改查例子

    参考这遍文章做了一个例子,稍微不同之处,原文是spring boot.mysql,这里改成了spring boot 2.Oracle. 一.pom.xml引入相关模块web.jpa.thymeleaf ...

  4. 自定义mvc增删改查

    对t_mvc_book表的增删改查 导入jar包 BaseDao package com.hmc.util; import java.lang.reflect.Field; import java.s ...

  5. 初次尝试PHP——一个简单的对数据库操作的增删改查例子

    第一次学习PHP,很多人说PHP是最好的语言,学习了一点点,还不敢说这样的话,不过确实蛮好用的. 做了一个简单的对数据库的增删改查的操作,主要是将四种操作写成了独立的函数,之后直接调用函数.以下是代码 ...

  6. Java MVC 增删改查 实例

    需求:实现增加新部门的功能,对应数据库表示Oracle的dept表 一.Java MVC 增 实现: 1.视图层(V):注册部门 deptAdd.jsp 在注册新部门页面只需输入“部门名称”和“城市” ...

  7. 用liferay实现的增删改查例子-book管理系统

    liferay 这个框架是一个开源的项目,大家可以修改源代码,来实现自己的需求.但是关于liferay的开发资料中文的很少关于liferay的基础知识,大家可以百度学习一下,再来看下边的例子 首先需要 ...

  8. DBUtils 增删改查例子

    sql CREATE TABLE [dbo].[Person] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , [age] [int] NULL ...

  9. JSP的一个增删改查例子和总结

    总结的几点: 1.在jsp中注意<%! %>声明代码块中的变量只会在项目开始的时候第一次运行jsp的时候执行一遍,有点类似于java类中的static代码块,所以如果是会改变的值不应该声明 ...

随机推荐

  1. POJ2288 Islands and Bridges

    Description Given a map of islands and bridges that connect these islands, a Hamilton path, as we al ...

  2. CodeReview Learning

    目录 . 引言 . 代码检视的指导思想 . 代码检视的内容 . 回归测试 0. 引言 代码检视(Code Review)是指软件开发人员在完成代码设计.编写.调试后展开的个人或群体性的代码阅读过程,代 ...

  3. Android APK反编译问题

    因为这几天想做一个离线音乐播放器,然后需要很多.png图片,在度娘上搜图片感觉效果不好, 就需要用到反编译工具来将一些.apk文件中的资源文件提取出来. 这里就只讲下怎么使用工具来进行反编译,什么?你 ...

  4. groovy-输入输出

    Groovy为I/O提供了一系列的helper methods ,所有的这些方法都适用于标准的 Java Reader/Writer ,InputStream/OutputStream 和File 以 ...

  5. PS图层混合模式实例详解

          PS中的很多概念都和Core Graphics中的概念相通,比如蒙版.路径.裁剪.混合模式等等.如果你对Core Graphics中的混合模式不太理解,阅读本篇文章能让你对Core Gra ...

  6. 锋利的jQuery-4--trigger()和triggerHandler()

    trigger()方法触发事件后,会执行浏览器默认操作. $("input").trigger("focus") 以上的代码不仅会执行input绑定的focus ...

  7. Flume-NG之KafkaChannel

    apache下一个版本(1.6)将会带来一个新的组件KafKaChannel,顾名思义就是使用kafka做channel,当然在CDH5.3版本已经存在这个channel. 大伙知道,常用的chann ...

  8. Third scrum meeting - 2015/10/28

    在一天的工作中明显发现到,无法和网站开发团队进行交流会严重导致我们的进程拖延,所以我们在现有的情况下也把大家的goal初步完成了,我们也对代码规范进行了详细的讨论,以及UI的设计完成,所以整个团队都真 ...

  9. gem install factory_girl

    文章是从个人博客转过来的,  可以直接访问 iwangzheng.com https://github.com/thoughtbot/factory_girl https://github.com/t ...

  10. rails命令避免直接操作数据库

    文章是从我的个人主页上粘贴过来的, 大家也可以访问我的主页 www.iwangzheng.com 今天在数据库里新增人员的时候出了点小问题,有人员重复了,以至于要删除一些,大师和pp指导完成的. $r ...