zoukankan      html  css  js  c++  java
  • Asp.net mvc+三层架构(注册篇)

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

    坑:从数据库加载出的数据需加.Trim()去掉空格符,否则匹配不成功

    先搞个简单的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 DAL
    11 {
    12    public  class UserDAL
    13     {
    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             try
    20             {
    21                 SqlDataReader a = SqlHelper.GetReader(sql1);
    22                 return 1;
    23             }
    24             catch
    25             {
    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 BLL
    10 {
    11     public class UserBLL
    12     {
    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 UserModels
    11     {
    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.Controllers
    11 {
    12     public class HomeController : Controller
    13     {
    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             else
    33             {
    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>

  • 相关阅读:
    Nginx + uWSGI 配置django
    django视图缓存的实现
    scrapy 资料
    scrapy 安装
    程序题做题一般步骤
    检查代码的一般步骤
    Mathematical-Analysis-I-4
    Mathematical-Analysis-I-3
    Mathematical-Analysis-I-1
    Mathematical-Analysis-I-2
  • 原文地址:https://www.cnblogs.com/fzqm-lwz/p/9977539.html
Copyright © 2011-2022 走看看