用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 ...
随机推荐
- C++程序设计教程学习(0)-引子
回想一下从事C++相关开发工作已经有4年,主要从事基于MFC.Duilib等GUI框架开发进行windows应用程序开发,还涉及了一些开源的项目.但是真的谈起这门语言或多或少都会有些心虚,关于C++的 ...
- HDU 4614 (13年多校第二场1004)裸线段树
题意:给你N个花瓶,编号是0 到 N - 1 ,初始状态花瓶是空的,每个花瓶最多插一朵花. 然后有2个操作. 操作1,a b c ,往在a位置后面(包括a)插b朵花,输出插入的首位置和末位置. 操作 ...
- 实现DIV拖动
Ajax的到来让B/S中的客户端中开发有火了一把,网上出现了很多优秀的开源框架和UI,比较著名了有prototype,YUI,GWT等,但很多时候发现这些东西很难用到你的系统之中,有时候你的系统仅仅需 ...
- pythond对象、异常、反射的学习笔记
python多继承,刚开始我是表示惊讶的,毕竟学的php,哪来的多继承?顶多也就是利用接口模拟多继承后者使用反射机制实现.那么还是来看看python的强大吧 1 首先,Python的类继承了多个类,那 ...
- Python3 如何优雅地使用正则表达式(详解七)
常见问题 正则表达式是一个非常强大的工具,但在有些时候它并不能直观地按照你的意愿来运行.本篇我们将指出一些最常见的错误. 使用字符串方法 有时使用 re 模块是个错误!如果你匹配一个固定的字符串或者单 ...
- IOS NSUserDefaults 讲解 用法
IOS NSUserDefaults 讲解 用法 NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults ...
- Java比较两个日期的大小
public static String getComparedSBQDate(String yxqq,String starttime){ String str = starttime; Simpl ...
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系[转]
http://dengo.org/archives/901 这是我看过的最好的一篇讲述编码的文章 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到 ...
- java基本类型作为成员变量时的初始值
package primitivetypedefaultvalue; public class ListDefaultValue { public static void main(String[] ...
- 2014-07-28 使用Axure RP进行手机端BBS的原型设计
今天是在吾索实习的第14天.因本公司的微信公众号需要有一个对外的技术交流平台,所以我们小组打算设计一个手机端的BBS以满足其要求.首先,我们需要做的是进行数据库设计与原型设计,然后提交给经理验收,看看 ...