用MVC4练习,后台用aspx,数据库DemoDb《MvcUserDemo》
分类:
IT文章
•
2022-02-28 15:59:27

将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 }
SqlHelper
在web.config中配置连接数据库文件
1 <connectionStrings>
2 <add name="connstr" connectionString="server=.;uid=sa;pwd=321654;database=DemoDb"/>
3 </connectionStrings>
add
创建一个控制器和页面,并获取数据库中的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 }
UserInfoController.cs
前台页面展示数据库中的数据
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>
Index.aspx
用户注册模块(拿到表单里面传递过来的数据,往数据库插入数据,返回首页)
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 }
ProcessAdd
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>
前台代码