2020-10-14

这篇博客展示了如何在ASP.NET环境中实现用户登录功能。通过UserInfoBLL类调用DAL层的方法进行数据查询,使用配置文件配置数据库连接字符串,并进行SQL参数化查询以确保安全性。当用户名和密码匹配时,返回用户对象,否则返回null。登录按钮点击事件中,根据用户输入验证登录信息,根据角色提示不同登录结果。
摘要由CSDN通过智能技术生成

登录  登录

 

namespace BLL
{
    public class UserInfoBLL
    {
        //登录
        public static UserInfo Select(string name, string pwd)
        {
            return UserInfoDAL.Select(name, pwd);
           }
        }
}   

 

 

 

using System.Configuration;
using System.Data;
using System.Data.SqlClient;


namespace DAL
{
  public   class SQLherpel
    {
        //连接字符
        private static string strConn = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
        //查询
        public static DataTable Query(string sql,params  SqlParameter[] sqlParameters)

        {
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, strConn))
            {
                if (sqlParameters != null && sqlParameters.Count() > 0)
                {
                    adapter.SelectCommand.Parameters.AddRange(sqlParameters);
                }
            using (DataTable table = new DataTable())
                { 
                adapter.Fill(table);
            return table;
              }
            }
        }
        //非查询
        public static int NonQuery(string sql,params  SqlParameter[] sqlParameters)
        {

            using (SqlConnection sqlConnection = new SqlConnection(strConn))
            {
                using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection))
               
                    {
                    if (sqlParameters != null && sqlParameters.Count() > 0)
                    {
                        sqlCommand.Parameters.AddRange(sqlParameters);
                    }
                    sqlConnection.Open();
                    return sqlCommand.ExecuteNonQuery();
                    }
            }
        }
    }
}

 

 

namespace DAL
{
 public    class UserInfoDAL
    {

      public static UserInfo  Select(string name,string pwd)
        {
            //构建查询语句  =  不能like
            var sql = $"select * from UserInfo Where name=@name and pwd=@pwd";
            SqlParameter[] sqlParameters =
            {
             new SqlParameter("@name",name),
             new SqlParameter("@pwd",pwd)

            };

            var table = SQLherpel.Query(sql,sqlParameters);
            //如果没有数据  null

            if(table ==null || table.Rows.Count < 1)
            {
                return null;
            }
            //如果有数据,取第一行,转换为对象
            var row = table.Rows[0];

            UserInfo user = new UserInfo()
            {
                Id = Convert.ToInt32(row["Id"]),
                name = Convert.ToString(row["name"]),
                pwd = Convert.ToString(row["pwd"]),
                Role = Convert.ToInt32(row["Role"]),
            };
            return user;

        }

    }
}
 

 

 

 

namespace Model
{
    public class UserInfo
    {

     public   int Id { get; set; }

     public  string name { get; set; }

     public   string pwd { get; set; }

     public  int Role { get; set; }

    }
}
 

 

 

namespace Web
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string name = this.txtName.Text;
            string pwd = this.txtPwd.Text;
            var user = UserInfoBLL.Select(name, pwd);

            if (user==null)
            {
                Response.Write("<script>alert('账号或者密码不正确')</script>");
                
            }
            else  if(user.Role==0)
            {
                //用户
                Response.Write("<script>alert('用户登录')</script>");
            }
            else if (user.Role == 1)
            {
                //管理员
                Response.Write("<script>alert('管理员登录')</script>");
            }


        }
    }
}

 

 

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>

  <connectionStrings>
    <add name="sql" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True" />
  </connectionStrings>
</configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值