一、显示用户列表
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. Linq 中 Distinct 方法扩展

    原文链接 http://www.cnblogs.com/A_ming/archive/2013/05/24/3097062.html public static class LinqEx { publ ...

  2. include ""与include<>

    在C程序中包含文件有以下两种方法:(1)用符号“<”和“>”将要包含的文件的文件名括起来.这种方法指示预处理程序到预定义的缺省路径下寻找文件.预定义的缺省路径通常是在INCLUDE环境变量 ...

  3. 随时修改添加,thinkphp小知识

    __SELF__代表自身路径, 谁访问它代表是谁, 区别在于有没有传值.传值的话self会带那个值 __ACTION__ 找操作方法所在的位置,区别在于有没有传值.传值的话action不会带那个值 _ ...

  4. Facebook内部高效工作PPT指南

    Facebook内部高效工作PPT指南 Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去.没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下25张PP ...

  5. day4作业之信息表

    实在是太low了,终究是自己写的,记录下 #!/usr/bin/env python # coding=utf8 import os, re #这里我把查询这块分为3个函数了,纠结了很久是放一起还是分 ...

  6. 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy

    读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要.那么首先,我们要明白深浅复制是如何定义的呢.这里为了便于朋友们理解,定义如下. 浅 复 制:在复制操作时,对于被复制的对象的 ...

  7. apache 配置多个虚拟主机

    修改文件:httd.conf 文件地址:D:\wamp\bin\apache\Apache2.2.21\conf #配置虚拟主机<VirtualHost 127.0.0.3:80>Serv ...

  8. [整理]通过AngularJS directive对bootstrap日期控件的的简单包装

    最近项目上了AngularJS,而原来使用的日期控件的使用方式也需要改变,于是开始了倒腾,看了官方的例子,可以使用AngularJS的directive做简单的处理,这样在html里直接使用申明的的形 ...

  9. Telnet是什么?

    Telnet协议是 用途一: 测试端口号 例子:测试本机的80端口是否打开 1.获得本机IP dos命令:ipconfig 可以看到本机的IP地址是192.168.0.102,当然这也是局域网IP,并 ...

  10. POJ 1054 The Troublesome Frog

    The Troublesome Frog Time Limit: 5000MS Memory Limit: 100000K Total Submissions: 9581 Accepted: 2883 ...