用MVC4练习,后台用aspx,数据库DemoDb《MvcUserDemo》
将ado.net的cs文件SqlHelper.cs放入解决方案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace MvcUserDemo
{
public static class SqlHelper
{
public static readonly string connstr =
ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
public static SqlConnection OpenConnection()
{
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
return conn;
}
public static int ExecuteNonQuery(string cmdText,
params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
return ExecuteNonQuery(conn, cmdText, parameters);
}
}
public static object ExecuteScalar(string cmdText,
params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
return ExecuteScalar(conn, cmdText, parameters);
}
}
public static DataTable ExecuteDataTable(string cmdText,
params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
return ExecuteDataTable(conn, cmdText, parameters);
}
}
public static int ExecuteNonQuery(SqlConnection conn,string cmdText,
params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
public static object ExecuteScalar(SqlConnection conn, string cmdText,
params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
}
public static DataTable ExecuteDataTable(SqlConnection conn, string cmdText,
params SqlParameter[] parameters)
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = cmdText;
cmd.Parameters.AddRange(parameters);
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}
}
}
public static object ToDBValue(this object value)
{
return value == null ? DBNull.Value : value;
}
public static object FromDBValue(this object dbValue)
{
return dbValue == DBNull.Value ? null : dbValue;
}
}
}
SqlHelper
在web.config中配置连接数据库文件
<connectionStrings>
<add name="connstr" connectionString="server=.;uid=sa;pwd=321654;database=DemoDb"/>
</connectionStrings>
add
创建一个控制器和页面,并获取数据库中的UserInfo表中的数据,把数据传递到前台页面进行展示
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcUserDemo.Controllers
{
public class UserInfoController : Controller
{
//
// GET: /UserInfo/
public ActionResult Index()
{
//获取数据库中的UserInfo表中的数据
DataTable dt=SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo");
//把数据传递到前台页面进行展示
ViewData["dt"] = dt;
return View();
}
}
}
UserInfoController.cs
前台页面展示数据库中的数据
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<%
DataTable dt = (DataTable)ViewData["dt"];
%>
<table>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<%foreach (DataRow dataRow in dt.Rows)
{%>
<tr>
<td />
<%:dataRow["Id"] %><td />
<td />
<%:dataRow["UserName"]%><td />
<td><%:dataRow["Age"]%>
<td />
</tr>
<%}%>
</table>
</div>
</body>
</html>
Index.aspx
用户注册模块(拿到表单里面传递过来的数据,往数据库插入数据,返回首页)
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using System.Data.SqlClient;
namespace MvcUserDemo.Controllers
{
public class UserInfoController : Controller
{
#region 用户列表
//
// GET: /UserInfo/
public ActionResult Index()
{
//获取数据库中的UserInfo表中的数据
DataTable dt = SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo");
//把数据传递到前台页面进行展示
ViewData["dt"] = dt;
return View();
}
#endregion
#region 用户注册页面
public ActionResult Add()
{
return View();
}
#endregion
//用户注册方法
public ActionResult ProcessAdd(FormCollection collection)
{
// 拿到表单里面传递过来的数据
string userName = Request["UserName"];
int Age = Convert.ToInt32(Request["Age"]);
//int Age = int.Parse(collection["Age"] ?? "0");
//往数据库插入数据
string insertSql = "insert UserInfo values(@UserName,@Age)";
SqlHelper.ExecuteNonQuery(insertSql,
new SqlParameter("@UserName", userName),
new SqlParameter("@Age", Age));
// return Content("OK");
return RedirectToAction("Index");
}
}
}
ProcessAdd
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>用户注册</title>
</head>
<body>
<div>
<form method="post" action="/UserInfo/ProcessAdd">
<table>
<tr>
<td>用户名:</td>
<td>
<input type="text" name="UserName"></td>
</tr>
<tr>
<td>年龄:</td>
<td>
<input type="text" name="Age"></td>
</tr>
<tr>
<td colspan=">
<input type="submit" value="用户注册"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
用户注册前台页面
强类型视图
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcUserDemo.Models
{
public class UserInfo
{
public string UserName { get; set; }
public int Id { get; set; }
public int Age { get; set; }
}
}
创建一个类
(显示用户)显示models中的数据
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data;
using System.Data.SqlClient;
using MvcUserDemo.Models;
namespace MvcUserDemo.Controllers
{
public class UserInfoController : Controller
{
#region 用户列表
//
// GET: /UserInfo/
public ActionResult Index()
{
//获取数据库中的UserInfo表中的数据
DataTable dt = SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo");
//把数据传递到前台页面进行展示
ViewData["dt"] = dt;
return View();
}
#endregion
#region 用户注册页面
public ActionResult Add()
{
return View();
}
#endregion
//用户注册方法
public ActionResult ProcessAdd(FormCollection collection)
{
// 拿到表单里面传递过来的数据
string userName = Request["UserName"];
int Age = Convert.ToInt32(Request["Age"]);
//int Age = int.Parse(collection["Age"] ?? "0");
//往数据库插入数据
string insertSql = "insert UserInfo values(@UserName,@Age)";
SqlHelper.ExecuteNonQuery(insertSql,
new SqlParameter("@UserName", userName),
new SqlParameter("@Age", Age));
// return Content("OK");
return RedirectToAction("Index");
}
#region 显示用户
public ActionResult Show()
{
UserInfo userInfo = new UserInfo();
userInfo.Id = ;
userInfo.UserName = "你懂的";
userInfo.Age = ;
ViewData.Model = userInfo;
return View();
}
#endregion
}
}
后台代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcUserDemo.Models.UserInfo>" %>
<%@ Import Namespace="MvcUserDemo.Models" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Show</title>
</head>
<body>
<div>
<table>
<tr>
<td>ID:</td>
<td><%:Model.Id %></td>
<td>姓名:</td>
<td><%:Model.UserName %></td>
<td>年龄:</td>
<td><%:Model.Age %></td>
</tr>
</table>
</div>
<%:Html.ActionLink("回到首页","Index") %>
</body>
</html>
前台代码
用户的删除
修改Index页面,并引入jquery文件
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="../../Scripts/jquery-1.8.2.min.js"></script>
<script>
$(function () {
$("a:contains('删除')").click(function () {
return confirm("请问是否删除此数据?");
});
});
</script>
</head>
<body>
<div>
<%
DataTable dt = (DataTable)ViewData["dt"];
%>
<table>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>删除</th>
</tr>
<%foreach (DataRow dataRow in dt.Rows)
{%>
<tr>
<td />
<%:dataRow["Id"] %><td />
<td />
<%:dataRow["UserName"]%><td />
<td><%:dataRow["Age"]%>
<td />
<td><%:Html.ActionLink("删除", "Delete", "UserInfo", new { Id = dataRow["Id"] }, new { })%>
<td />
</tr>
<%}%>
</table>
</div>
</body>
</html>
在UserInfo中添加一个新的方法
#region 删除
public ActionResult Delete(int Id)
{
//根据Id删除用户的数据
string sql = "delete from UserInfo where Id=@Id";
SqlHelper.ExecuteNonQuery(sql, new SqlParameter("@Id", Id));
//页面跳转到删除后的首页
return RedirectToAction("Index");
}
#endregion
后台代码
用户的修改
#region 修改用户
[HttpGet]
public ActionResult Edit(int Id)
{
string sql = "select UserName,Id,Age from UserInfo where Id=@Id";
DataTable dt = SqlHelper.ExecuteDataTable(sql, new SqlParameter("@Id", Id));
//把dt转成UserInfo对象
UserInfo userInfo = new UserInfo();
userInfo.Id = Convert.ToInt32(dt.Rows[]["Id"]);
userInfo.Age = Convert.ToInt32(dt.Rows[]["Age"]);
userInfo.UserName = dt.Rows[]["UserName"].ToString();
ViewData.Model = userInfo;
return View();
}
//只是显示用户修改的页面
[HttpPost]
public ActionResult Edit(int Id, int Age, string UserName, UserInfo userInfo)
{
string updateSql = "update UserInfo set UserName=@UserName,Age=@Age where Id=@Id";
SqlParameter idParameter = new SqlParameter("@Id", userInfo.Id);
SqlParameter ageParameter = new SqlParameter("@Age", userInfo.Age);
SqlParameter nameParameter = new SqlParameter("@UserName", userInfo.UserName);
SqlHelper.ExecuteNonQuery(updateSql, idParameter, ageParameter, nameParameter);
return RedirectToAction("Index");
}
#endregion
后台代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcUserDemo.Models.UserInfo>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
<script src="../../Scripts/jquery-1.8.2.min.js"></script>
<script>
$(function () {
$("#xiugai").click(function () {
return confirm("请问是否修改此数据?");
});
});
</script>
</head>
<body>
<%using (Html.BeginForm())
{%>
<table>
<tr>
<td>用户编号:</td>
<td><%:Model.Id %>
<%:Html.HiddenFor(u=>u.Id)%>
</td>
</tr>
<tr>
<td>用户名:</td>
<td><%:Html.TextBoxFor(u=>u.UserName) %></td>
<tr>
<tr>
<td>年龄:</td>
<td><%:Html.TextBoxFor(u=>u.Age)%></td>
</tr>
<tr>
<td colspan=">
<input type="submit" value="修改" id="xiugai" /></td>
</tr>
</table>
<%} %>
</body>
</html>
前台代码
用MVC4练习,后台用aspx,数据库DemoDb《MvcUserDemo》的更多相关文章
- 将前台input中的数据异步传到后台并存入数据库
将前台input中的数据异步传到后台并存入数据库 先看图: 利用ajax异步交互数据,并不是以json数组的形式将数据传到后台,而是利用字符数组的形式将其传到后台.动态新增每一行数据,将每一列对应的数 ...
- MVC4做网站后台:用户管理 ——用户组 2、查看、修改、删除用户组
查看用户组资料和修改用户组资料结合在一起,在用户组列表双击查看用户组资料,修改资料点保存可以保存用户组,点删除可以删除用户组. 先在UserGroupController中添加 action publ ...
- MVC4做网站后台:用户管理 ——用户组 1、添加用户组
打开控制器UserGroupController 添加Add action /// <summary> /// 添加用户组 /// </summary> /// <ret ...
- MVC4做网站后台:模块管理1、修改模块信息
网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...
- dede两个后台共用一个数据库会出现的问题
共用数据库内容页图片问题 在include/extend.func.php里面加上 function replaceurl($newurl) { $newurl=str_replace('src=&q ...
- MVC4做网站后台:用户管理 —用户
这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ...
- MVC4做网站后台:用户管理 ——用户组补充
上次做完发现存在点问题. 1.是类型显示的为数字(如下图): 2.是不能根据类型进行查询. 首先做查询.easyui-datagrid可以添加toolbar. 在datagrid的data-optio ...
- MVC4做网站后台:用户管理 ——用户组
用户管理这块包含用户和用户组两部分. 用户组包括浏览 用户组列表,添加.修改.删除用户组等.按照前面思路系统是依据用户组来判断用户权限的,用户组的最主要目的是划分权限.权限这块以后单独在做. 下面实现 ...
- MVC4做网站后台:栏目管理3、删除栏目与左侧列表菜单
一.左侧列表菜单 打开视图Menu.cshtml,增加部分见红框 在category中添加脚本 //栏目菜单加载完毕函数 function CategoryMenu_Ready() { $('#cat ...
随机推荐
- [!] Unable to satisfy the following requirements:
出现这个问题是由于我本地Podfile文件上第三方版本太低. 解决方案就是,更新一下本地Podfile文件上的第三方版本,也就是pod update --verbose一下. 注意一下,这个命令需要很 ...
- CADisplayLink的简单使用
CADisplayLink类似NSTimer是一个定时器,只不过是一秒会调用60次指定的方法 使用方法: #import "ViewController.h" @interface ...
- 接入淘宝SDK(OneSDK)和支付宝SDK(AlipaySDK)出现 duplicate symbols for architecture i386
起初我在我的项目中先接入了AlipaySDK,没有出现什么问题,之后想要接入淘宝SDK之后,就出现了duplicate symbols for architecture i386的错误 经过一段时间排 ...
- php中函数不确定参数个数时获取所有参数
func_get_arg(),func_get_args()和func_num_args()的用法 这三个函数呢,都是以func_打头的,顾名思义,是跟php的函数有关的.我们在写类的时候也经常用到这 ...
- 有关Ajax实现的两种方法
首先我们来常见的Jquery式的Ajax写法,以及在java后台的取值 /** *AJAX */ function showLastTime(){ var facilityId = $('*[name ...
- 统计建模与R软件习题二答案
# 习题2 # 2.1 x=c(1,2,3) y=c(4,5,6) e=c(rep(1,3)) z=2*x+y+e;z x%*%y # 若x,y如答案那样定义为矩阵,则不能用%*%,因为,维数不对应, ...
- Flume笔记--source端监听目录,sink端上传到HDFS
官方文档参数解释:http://flume.apache.org/FlumeUserGuide.html#hdfs-sink 需要注意:文件格式,fileType=DataStream 默认为Sequ ...
- web安全:sql 注入
sql注入获取webshell寻找sql注入页面,操作数据库的地方向网站写入sql语句' union select 1,2, '<?php system($_GET["cmd" ...
- iOS 数据库操作(使用FMDB)
iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...
- STM32的RTC万年历显示问题
博客整理后写出来的,有点乱,大家见谅! 想让串口输出万年历效果.每次秒刷新一次 结果是串口软件一直输出,看起来很难受 先讲一讲C代码的\r和\n的区别 \r 就是return 回到 本行 行首 这就会 ...