分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

Asp.net mvc+三层架构(注册篇)

发布时间:2023-09-06 02:22责任编辑:白小东关键词:暂无标签

                                               Asp.net mvc+三层架构(注册篇)

先搞个简单的SQL数据库名为MVC, 新建表UserInfo

Id主键,int型,自增1;

UserName,char型;

PassWord,char型;

注意:表的名称不要取user,因为与vs关键字有冲突,会报错(尴尬地笑了一下)

项目结构:

1.新建一个名为MVCRegister的应用程序,并选择mvc框架

2.分别建立DAL,BLL,Models类库,再在DAL类库下新建sql帮助类SqlHelper.cs

再在MVCRegister的目录下的右键添加引用,在“程序集”勾选System.Cofiguration 

 ?1 using System; ?2 using System.Collections.Generic; ?3 using System.Linq; ?4 using System.Text; ?5 using System.Threading.Tasks; ?6 using System.Data.SqlClient; ?7 using System.Configuration; ?8 using System.Data; ?9 using System.Collections; 10 ?11 namespace DAL 12 { 13 ?14 ????public class SqlHelper 15 ????{ 16 ?17 ????????public static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString(); 18 ????????public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) 19 ????????{ 20 ????????????SqlCommand cmd = new SqlCommand(); 21 ????????????using (SqlConnection conn = new SqlConnection(connectionString)) 22 ????????????{ 23 ????????????????PrepareCommand(cmd, commandType, conn, commandText, commandParameters); 24 ????????????????int val = cmd.ExecuteNonQuery(); 25 ????????????????return val; 26 ????????????} 27 ????????} 28 ????????public static SqlDataReader GetReader(string sql) 29 ????????{ 30 ????????????SqlConnection conn = new SqlConnection(connString); 31 ????????????SqlCommand cmd = new SqlCommand(sql, conn); 32 ????????????try 33 ????????????{ 34 ????????????????conn.Open(); 35 ????????????????return cmd.ExecuteReader(CommandBehavior.CloseConnection); 36 ?37 ????????????} 38 ????????????catch (Exception ex) 39 ????????????{ 40 ????????????????throw ex; 41 ????????????} 42 ????????} 43 ?44 ?45 ????????public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues) 46 ????????{ 47 ?48 ????????????using (SqlConnection conn = new SqlConnection(connectionString)) 49 ????????????{ 50 ????????????????SqlCommand cmd = new SqlCommand(); 51 ?52 ????????????????PrepareCommand(cmd, conn, spName, parameterValues); 53 ????????????????int val = cmd.ExecuteNonQuery(); 54 ?55 ????????????????return val; 56 ????????????} 57 ????????} 58 ?59 ????????public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) 60 ????????{ 61 ?62 ????????????SqlConnection conn = new SqlConnection(connectionString); 63 ????????????try 64 ????????????{ 65 ????????????????SqlCommand cmd = new SqlCommand(); 66 ????????????????PrepareCommand(cmd, commandType, conn, commandText, commandParameters); 67 ????????????????SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 68 ?69 ????????????????return rdr; 70 ????????????} 71 ????????????catch 72 ????????????{ 73 ????????????????conn.Close(); 74 ????????????????throw; 75 ????????????} 76 ????????} 77 ?78 ????????public static SqlDataReader ExecuteReader(CommandType text, string connectionString, string spName, params object[] parameterValues) 79 ????????{ 80 ????????????SqlConnection conn = new SqlConnection(connectionString); 81 ????????????try 82 ????????????{ 83 ????????????????SqlCommand cmd = new SqlCommand(); 84 ?85 ????????????????PrepareCommand(cmd, conn, spName, parameterValues); 86 ????????????????SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 87 ?88 ????????????????return rdr; 89 ????????????} 90 ????????????catch 91 ????????????{ 92 ????????????????conn.Close(); 93 ????????????????throw; 94 ????????????} 95 ?96 ????????} 97 ?98 ?99 ????????public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues)100 ????????{101 ????????????using (SqlConnection conn = new SqlConnection(connectionString))102 ????????????{103 ????????????????SqlCommand cmd = new SqlCommand();104 105 ????????????????PrepareCommand(cmd, conn, spName, parameterValues);106 107 ????????????????using (SqlDataAdapter da = new SqlDataAdapter(cmd))108 ????????????????{109 ????????????????????DataSet ds = new DataSet();110 111 ????????????????????da.Fill(ds);112 113 ????????????????????return ds;114 ????????????????}115 ????????????}116 ????????}117 118 119 ????????public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)120 ????????{121 ????????????using (SqlConnection conn = new SqlConnection(connectionString))122 ????????????{123 124 ????????????????SqlCommand cmd = new SqlCommand();125 126 ????????????????PrepareCommand(cmd, commandType, conn, commandText, commandParameters);127 ????????????????using (SqlDataAdapter da = new SqlDataAdapter(cmd))128 ????????????????{129 ????????????????????DataSet ds = new DataSet();130 131 ????????????????????da.Fill(ds);132 133 ????????????????????return ds;134 ????????????????}135 ????????????}136 ????????}137 138 139 ????????public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)140 ????????{141 ????????????SqlCommand cmd = new SqlCommand();142 143 ????????????using (SqlConnection conn = new SqlConnection(connectionString))144 ????????????{145 ????????????????PrepareCommand(cmd, commandType, conn, commandText, commandParameters);146 ????????????????object val = cmd.ExecuteScalar();147 148 ????????????????return val;149 ????????????}150 ????????}151 152 ????????public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues)153 ????????{154 ????????????SqlCommand cmd = new SqlCommand();155 156 ????????????using (SqlConnection conn = new SqlConnection(connectionString))157 ????????????{158 ????????????????PrepareCommand(cmd, conn, spName, parameterValues);159 ????????????????object val = cmd.ExecuteScalar();160 161 ????????????????return val;162 ????????????}163 ????????}164 165 ????????private static void PrepareCommand(SqlCommand cmd, CommandType commandType, SqlConnection conn, string commandText, SqlParameter[] cmdParms)166 ????????{167 ????????????//打开连接168 ????????????if (conn.State != ConnectionState.Open)169 ????????????????conn.Open();170 171 ????????????//设置SqlCommand对象172 ????????????cmd.Connection = conn;173 ????????????cmd.CommandText = commandText;174 ????????????cmd.CommandType = commandType;175 176 ????????????if (cmdParms != null)177 ????????????{178 ????????????????foreach (SqlParameter parm in cmdParms)179 ????????????????????cmd.Parameters.Add(parm);180 ????????????}181 ????????}182 183 ????????private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, string spName, params object[] parameterValues)184 ????????{185 ????????????//打开连接186 ????????????if (conn.State != ConnectionState.Open)187 ????????????????conn.Open();188 189 ????????????//设置SqlCommand对象190 ????????????cmd.Connection = conn;191 ????????????cmd.CommandText = spName;192 ????????????cmd.CommandType = CommandType.StoredProcedure;193 194 ????????????//获取存储过程的参数195 ????????????SqlCommandBuilder.DeriveParameters(cmd);196 197 ????????????//移除Return_Value 参数198 ????????????cmd.Parameters.RemoveAt(0);199 200 ????????????//设置参数值201 ????????????if (parameterValues != null)202 ????????????{203 ????????????????for (int i = 0; i < cmd.Parameters.Count; i++)204 ????????????????{205 ????????????????????cmd.Parameters[i].Value = parameterValues[i];206 207 ????????????????}208 ????????????}209 ????????}210 ????}211 }
SqlHelper

3.在DAL中新建UserDAL.cs

 1 using Models; 2 using System; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Data.SqlClient; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 10 namespace DAL11 {12 ???public ?class UserDAL13 ????{14 ???????15 ????????public int RegisterUserDAL(UserModels zhuce)16 ????????{17 ????????????string sql1 = "insert into UserInfo (UserName,PassWord) values ?(‘{0}‘,‘{1}‘)";18 ????????????sql1 = string.Format(sql1, zhuce.UserName, zhuce.PassWord); ??????????19 ????????????try20 ????????????{21 ????????????????SqlDataReader a = SqlHelper.GetReader(sql1);22 ????????????????return 1;23 ????????????}24 ????????????catch25 ????????????{26 ????????????????return 0;27 ????????????}28 ????????}29 30 31 ????}32 }
UserDAL.cs

在BLL中新建UserBLL

 1 using DAL; 2 using Models; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 ?9 namespace BLL10 {11 ????public class UserBLL12 ????{13 ????????public int RegiterUserBLL(UserModels RegiterUser)//用户注册14 ????????{15 ????????????int judge = new UserDAL().RegisterUserDAL(RegiterUser);16 ????????????return judge;17 ????????}18 ????}19 }
UserBLL.cs

在Models中新建UserModels.cs

 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel.DataAnnotations; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 ?8 namespace Models 9 {10 ???public class UserModels11 ????{12 ????????public int Id { get; set; } ??????13 ????????public string UserName { get; set; }14 ????????public string PassWord{ get; set; }15 16 ????}17 }
UserModels.cs

4.添加Home控制器,Index是显示注册的界面,RegisterUser是实现注册的方法

 1 using BLL; 2 using DAL; 3 using Models; 4 using System; 5 using System.Collections.Generic; 6 using System.Linq; 7 using System.Web; 8 using System.Web.Mvc; 9 10 namespace Pages.Controllers11 {12 ????public class HomeController : Controller13 ????{14 ????????public ActionResult Index()15 ????????{16 ????????????return View();17 ????????}18 ????????[HttpPost]19 ????????public ActionResult RegisterUser(UserModels Register)20 ????????{21 22 ?????????????Register = new UserModels()23 ????????????{24 ????????????????UserName = Request.Params["UserName"],25 ????????????????PassWord = Request.Params["PassWord"], ????????????26 ????????????};27 ????????????UserBLL ret = new UserBLL();28 ????????????if (ret.RegiterUserBLL(Register) == 1)//判断是否插入成功29 ????????????{30 ????????????????return Content("<script>alert(‘注册成功‘);window.location.href=‘../Home/Index‘;</script>");31 ????????????}32 ????????????else33 ????????????{34 ????????????????Response.Write("<script>alert(‘注册失败!‘)</script>");35 ????????????????return View();36 ????????????}37 ????????????38 ????????}39 ???????40 41 ????????}42 }
Home

5.在Views文件夹下建Home文件夹,再建Index视图

 1 @{ 2 ????Layout = null; 3 } 4 ?5 <!DOCTYPE html> 6 ?7 <html> 8 <head> 9 ????<meta name="viewport" content="width=device-width" />10 ????<title>Index</title>11 12 13 </head>14 15 <body>16 ????<div>17 ????????<%=Html.ValidationMessage("action") %>18 ???????<form method="post" action="/Home/RegisterUser">19 ??????????20 ????????????????<p>用户名: <input name="UserName" type="text" /></p>21 ????????????????<p>密&nbsp;码: <input name="PassWord" type="text" /></p>22 ????????????????<input type="submit" value="提交注册" />23 ????????????24 25 ????????</form>26 ????????27 ????</div>28 29 30 </body>31 </html>
Index

6.连接数据库。打开项目的Web.Config,在<configuration></configuration>标签内,添加下面 语句 

<connectionStrings>
??<add name="connString" connectionString="Data Source=.;Initial Catalog=Pages;User ID=sa;Password=123"
???providerName="System.Data.SqlClient" />
?</connectionStrings>

7.运行截图




















</body></html>

Asp.net mvc+三层架构(注册篇)

原文地址:https://www.cnblogs.com/fzqm-lwz/p/9977539.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved