一、显示用户列表
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. TCP/IP详解 学习六

    从ip层看路由表  选路策略 选路策略:决定把哪些路由放到路由表的规则. Ip执行选路机制,而路由守护程序则提供选路策略. Netstat –rn 打印路由表,如果没有-n命令会搜索配置文件,将网络地 ...

  2. 查看apk包名package和入口activity名称的方法

    ctrl+r 打开CMD窗口 进入sdk-aapt目录 执行命令:aapt dump badging xx.apk 内容太多?不好看,没关系,全部拷出来,ctrl+f,so easy! package ...

  3. .net mvc4 利用 kindeditor 上传本地图片

    http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...

  4. c++ std::string.c_str()

    语法: const char *c_str();搜索 c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过 ...

  5. RSA算法小记

    学习来源:http://www.cnblogs.com/vamei/p/3480994.html 小记: 一.数学基础: 欧拉Phi函数:Φ(n)=总数(从1到n-1中与n互质的整数) (1)欧拉定理 ...

  6. P问题、NP问题、NPC问题、NP难问题的概念

    P问题.NP问题.NPC问题.NP难问题的概念 离入职尚有几天时间,闲来无事,将大家常见却又很容易搞糊涂的几个概念进行整理,希望对大家有所帮助.你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这 ...

  7. Javascript动态调整文章的行距、字体、颜色,及打印页面和关闭窗口功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 关于js函数中的异步编程

    大家都说js 是单线程的应用,但是随着技术的发展,js的发展已经不仅仅局限于单线程了.因为现在很多都是异步了,所谓的异步,就是类似于ajax,写了一个回调函数,当我的服务还在这个地方的时候,等着他去排 ...

  9. js打印(控件)及多种方式

    非常好用的LODOP打印控件 Lodop打印控件简单使用方法 1.安装. 2.调用LodopFuncs.js文件. 3.增加OBJECT对象 <script language="jav ...

  10. 在Linux上使用的10种云备份方案

    导读 不久前,为用户提供一种备份远程机器上数据的简易方法还很稀奇.现在,我们已觉得这理所当然.Dropbox及其他公司简化了这项任务.苹果.谷歌和微软都提供各自的数据备份方法. 在Linux上,情况有 ...