将ado.net的cs文件SqlHelper.cs放入解决方案
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Configuration; 6 using System.Data.SqlClient; 7 using System.Data; 8 9 namespace MvcUserDemo 10 { 11 public static class SqlHelper 12 { 13 public static readonly string connstr = 14 ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; 15 16 public static SqlConnection OpenConnection() 17 { 18 SqlConnection conn = new SqlConnection(connstr); 19 conn.Open(); 20 return conn; 21 } 22 23 public static int ExecuteNonQuery(string cmdText, 24 params SqlParameter[] parameters) 25 { 26 using (SqlConnection conn = new SqlConnection(connstr)) 27 { 28 conn.Open(); 29 return ExecuteNonQuery(conn, cmdText, parameters); 30 } 31 } 32 33 public static object ExecuteScalar(string cmdText, 34 params SqlParameter[] parameters) 35 { 36 using (SqlConnection conn = new SqlConnection(connstr)) 37 { 38 conn.Open(); 39 return ExecuteScalar(conn, cmdText, parameters); 40 } 41 } 42 43 public static DataTable ExecuteDataTable(string cmdText, 44 params SqlParameter[] parameters) 45 { 46 using (SqlConnection conn = new SqlConnection(connstr)) 47 { 48 conn.Open(); 49 return ExecuteDataTable(conn, cmdText, parameters); 50 } 51 } 52 53 public static int ExecuteNonQuery(SqlConnection conn,string cmdText, 54 params SqlParameter[] parameters) 55 { 56 using (SqlCommand cmd = conn.CreateCommand()) 57 { 58 cmd.CommandText = cmdText; 59 cmd.Parameters.AddRange(parameters); 60 return cmd.ExecuteNonQuery(); 61 } 62 } 63 64 public static object ExecuteScalar(SqlConnection conn, string cmdText, 65 params SqlParameter[] parameters) 66 { 67 using (SqlCommand cmd = conn.CreateCommand()) 68 { 69 cmd.CommandText = cmdText; 70 cmd.Parameters.AddRange(parameters); 71 return cmd.ExecuteScalar(); 72 } 73 } 74 75 public static DataTable ExecuteDataTable(SqlConnection conn, string cmdText, 76 params SqlParameter[] parameters) 77 { 78 using (SqlCommand cmd = conn.CreateCommand()) 79 { 80 cmd.CommandText = cmdText; 81 cmd.Parameters.AddRange(parameters); 82 using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) 83 { 84 DataTable dt = new DataTable(); 85 adapter.Fill(dt); 86 return dt; 87 } 88 } 89 } 90 91 public static object ToDBValue(this object value) 92 { 93 return value == null ? DBNull.Value : value; 94 } 95 96 public static object FromDBValue(this object dbValue) 97 { 98 return dbValue == DBNull.Value ? null : dbValue; 99 } 100 } 101 }
在web.config中配置连接数据库文件
1 <connectionStrings> 2 <add name="connstr" connectionString="server=.;uid=sa;pwd=321654;database=DemoDb"/> 3 </connectionStrings>
创建一个控制器和页面,并获取数据库中的UserInfo表中的数据,把数据传递到前台页面进行展示
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Mvc; 7 8 namespace MvcUserDemo.Controllers 9 { 10 public class UserInfoController : Controller 11 { 12 // 13 // GET: /UserInfo/ 14 15 public ActionResult Index() 16 { 17 //获取数据库中的UserInfo表中的数据 18 DataTable dt=SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo"); 19 20 //把数据传递到前台页面进行展示 21 ViewData["dt"] = dt; 22 return View(); 23 } 24 25 } 26 }
前台页面展示数据库中的数据
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 2 3 <%@ Import Namespace="System.Data" %> 4 5 <!DOCTYPE html> 6 7 <html> 8 <head runat="server"> 9 <meta name="viewport" content="width=device-width" /> 10 <title>Index</title> 11 </head> 12 <body> 13 <div> 14 <% 15 DataTable dt = (DataTable)ViewData["dt"]; 16 17 %> 18 19 <table> 20 <tr> 21 <th>编号</th> 22 <th>姓名</th> 23 <th>年龄</th> 24 </tr> 25 26 <%foreach (DataRow dataRow in dt.Rows) 27 {%> 28 29 <tr> 30 <td /> 31 <%:dataRow["Id"] %><td /> 32 <td /> 33 <%:dataRow["UserName"]%><td /> 34 <td><%:dataRow["Age"]%> 35 <td /> 36 </tr> 37 38 <%}%> 39 </table> 40 </div> 41 </body> 42 </html>
用户注册模块(拿到表单里面传递过来的数据,往数据库插入数据,返回首页)
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Mvc; 7 using System.Data; 8 using System.Data.SqlClient; 9 10 namespace MvcUserDemo.Controllers 11 { 12 public class UserInfoController : Controller 13 { 14 #region 用户列表 15 16 // 17 // GET: /UserInfo/ 18 19 public ActionResult Index() 20 { 21 //获取数据库中的UserInfo表中的数据 22 DataTable dt = SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo"); 23 24 //把数据传递到前台页面进行展示 25 ViewData["dt"] = dt; 26 return View(); 27 } 28 #endregion 29 30 #region 用户注册页面 31 public ActionResult Add() 32 { 33 return View(); 34 } 35 36 #endregion 37 //用户注册方法 38 public ActionResult ProcessAdd(FormCollection collection) 39 { 40 // 拿到表单里面传递过来的数据 41 string userName = Request["UserName"]; 42 int Age = Convert.ToInt32(Request["Age"]); 43 //int Age = int.Parse(collection["Age"] ?? "0"); 44 //往数据库插入数据 45 string insertSql = "insert UserInfo values(@UserName,@Age)"; 46 SqlHelper.ExecuteNonQuery(insertSql, 47 new SqlParameter("@UserName", userName), 48 new SqlParameter("@Age", Age)); 49 50 // return Content("OK"); 51 return RedirectToAction("Index"); 52 } 53 54 } 55 }
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 2 3 <!DOCTYPE html> 4 5 <html> 6 <head runat="server"> 7 <meta name="viewport" content="width=device-width" /> 8 <title>用户注册</title> 9 </head> 10 <body> 11 <div> 12 <form method="post" action="/UserInfo/ProcessAdd"> 13 <table> 14 <tr> 15 <td>用户名:</td> 16 <td> 17 <input type="text" name="UserName"></td> 18 </tr> 19 <tr> 20 <td>年龄:</td> 21 <td> 22 <input type="text" name="Age"></td> 23 </tr> 24 <tr> 25 <td colspan="2"> 26 <input type="submit" value="用户注册"></td> 27 </tr> 28 </table> 29 </form> 30 </div> 31 </body> 32 </html>
强类型视图
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 namespace MvcUserDemo.Models 7 { 8 public class UserInfo 9 { 10 public string UserName { get; set; } 11 public int Id { get; set; } 12 public int Age { get; set; } 13 } 14 }
(显示用户)显示models中的数据
1 using System; 2 using System.Collections.Generic; 3 using System.Data; 4 using System.Linq; 5 using System.Web; 6 using System.Web.Mvc; 7 using System.Data; 8 using System.Data.SqlClient; 9 using MvcUserDemo.Models; 10 11 namespace MvcUserDemo.Controllers 12 { 13 public class UserInfoController : Controller 14 { 15 #region 用户列表 16 17 // 18 // GET: /UserInfo/ 19 20 public ActionResult Index() 21 { 22 //获取数据库中的UserInfo表中的数据 23 DataTable dt = SqlHelper.ExecuteDataTable("select Id, UserName, Age from dbo.UserInfo"); 24 25 //把数据传递到前台页面进行展示 26 ViewData["dt"] = dt; 27 return View(); 28 } 29 #endregion 30 31 #region 用户注册页面 32 public ActionResult Add() 33 { 34 return View(); 35 } 36 37 #endregion 38 //用户注册方法 39 public ActionResult ProcessAdd(FormCollection collection) 40 { 41 // 拿到表单里面传递过来的数据 42 string userName = Request["UserName"]; 43 int Age = Convert.ToInt32(Request["Age"]); 44 //int Age = int.Parse(collection["Age"] ?? "0"); 45 //往数据库插入数据 46 string insertSql = "insert UserInfo values(@UserName,@Age)"; 47 SqlHelper.ExecuteNonQuery(insertSql, 48 new SqlParameter("@UserName", userName), 49 new SqlParameter("@Age", Age)); 50 51 // return Content("OK"); 52 return RedirectToAction("Index"); 53 } 54 55 56 #region 显示用户 57 public ActionResult Show() 58 { 59 UserInfo userInfo = new UserInfo(); 60 userInfo.Id = 9; 61 userInfo.UserName = "你懂的"; 62 userInfo.Age = 18; 63 ViewData.Model = userInfo; 64 return View(); 65 } 66 #endregion 67 } 68 }
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcUserDemo.Models.UserInfo>" %> 2 3 <%@ Import Namespace="MvcUserDemo.Models" %> 4 <!DOCTYPE html> 5 6 <html> 7 <head runat="server"> 8 <meta name="viewport" content="width=device-width" /> 9 <title>Show</title> 10 </head> 11 <body> 12 <div> 13 <table> 14 <tr> 15 <td>ID:</td> 16 <td><%:Model.Id %></td> 17 <td>姓名:</td> 18 <td><%:Model.UserName %></td> 19 <td>年龄:</td> 20 <td><%:Model.Age %></td> 21 </tr> 22 </table> 23 </div> 24 <%:Html.ActionLink("回到首页","Index") %> 25 </body> 26 </html>
用户的删除
修改Index页面,并引入jquery文件
前台代码
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 2 3 <%@ Import Namespace="System.Data" %> 4 5 <!DOCTYPE html> 6 7 <html> 8 <head runat="server"> 9 <meta name="viewport" content="width=device-width" /> 10 <title>Index</title> 11 <script src="../../Scripts/jquery-1.8.2.min.js"></script> 12 <script> 13 $(function () { 14 $("a:contains('删除')").click(function () { 15 return confirm("请问是否删除此数据?"); 16 17 }); 18 }); 19 20 </script> 21 22 </head> 23 <body> 24 <div> 25 <% 26 DataTable dt = (DataTable)ViewData["dt"]; 27 28 %> 29 30 <table> 31 <tr> 32 <th>编号</th> 33 <th>姓名</th> 34 <th>年龄</th> 35 <th>删除</th> 36 </tr> 37 38 <%foreach (DataRow dataRow in dt.Rows) 39 {%> 40 41 <tr> 42 <td /> 43 <%:dataRow["Id"] %><td /> 44 <td /> 45 <%:dataRow["UserName"]%><td /> 46 <td><%:dataRow["Age"]%> 47 <td /> 48 <td><%:Html.ActionLink("删除", "Delete", "UserInfo", new { Id = dataRow["Id"] }, new { })%> 49 <td /> 50 </tr> 51 52 <%}%> 53 </table> 54 </div> 55 </body> 56 </html>
在UserInfo中添加一个新的方法
1 #region 删除 2 public ActionResult Delete(int Id) 3 { 4 //根据Id删除用户的数据 5 string sql = "delete from UserInfo where Id=@Id"; 6 SqlHelper.ExecuteNonQuery(sql, new SqlParameter("@Id", Id)); 7 8 //页面跳转到删除后的首页 9 10 return RedirectToAction("Index"); 11 } 12 #endregion
用户的修改
1 #region 修改用户 2 3 [HttpGet] 4 public ActionResult Edit(int Id) 5 { 6 string sql = "select UserName,Id,Age from UserInfo where Id=@Id"; 7 DataTable dt = SqlHelper.ExecuteDataTable(sql, new SqlParameter("@Id", Id)); 8 9 //把dt转成UserInfo对象 10 UserInfo userInfo = new UserInfo(); 11 userInfo.Id = Convert.ToInt32(dt.Rows[0]["Id"]); 12 userInfo.Age = Convert.ToInt32(dt.Rows[0]["Age"]); 13 userInfo.UserName = dt.Rows[0]["UserName"].ToString(); 14 ViewData.Model = userInfo; 15 return View(); 16 } 17 18 //只是显示用户修改的页面 19 [HttpPost] 20 public ActionResult Edit(int Id, int Age, string UserName, UserInfo userInfo) 21 { 22 string updateSql = "update UserInfo set UserName=@UserName,Age=@Age where Id=@Id"; 23 SqlParameter idParameter = new SqlParameter("@Id", userInfo.Id); 24 SqlParameter ageParameter = new SqlParameter("@Age", userInfo.Age); 25 SqlParameter nameParameter = new SqlParameter("@UserName", userInfo.UserName); 26 SqlHelper.ExecuteNonQuery(updateSql, idParameter, ageParameter, nameParameter); 27 return RedirectToAction("Index"); 28 } 29 #endregion
1 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MvcUserDemo.Models.UserInfo>" %> 2 3 <!DOCTYPE html> 4 5 <html> 6 <head runat="server"> 7 <meta name="viewport" content="width=device-width" /> 8 <title>Edit</title> 9 <script src="../../Scripts/jquery-1.8.2.min.js"></script> 10 <script> 11 $(function () { 12 $("#xiugai").click(function () { 13 14 return confirm("请问是否修改此数据?"); 15 }); 16 17 }); 18 19 </script> 20 </head> 21 <body> 22 23 <%using (Html.BeginForm()) 24 {%> 25 <table> 26 <tr> 27 <td>用户编号:</td> 28 <td><%:Model.Id %> 29 <%:Html.HiddenFor(u=>u.Id)%> 30 </td> 31 </tr> 32 <tr> 33 <td>用户名:</td> 34 <td><%:Html.TextBoxFor(u=>u.UserName) %></td> 35 <tr> 36 <tr> 37 <td>年龄:</td> 38 <td><%:Html.TextBoxFor(u=>u.Age)%></td> 39 </tr> 40 <tr> 41 <td colspan="2"> 42 <input type="submit" value="修改" id="xiugai" /></td> 43 </tr> 44 45 </table> 46 <%} %> 47 </body> 48 </html>