项目分析(1)

项目结构

BLL(业务员逻辑)   DAO(DAO组件) DBUtlity(提供数据库的基本操作)   Entity(实体层,类似JavaBean)  Web(WEb层)




1.从最简单的登录界面开始

Login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Web.Admin.WebForm1" %>
<!--编译指令,使用c#编写代码 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function checkName(name) {
            if (name == "") {
                document.getElementById("checkName").innerHTML = "名称不能空";
            } else {
                document.getElementById("checkName").innerHTML = "";
            }
        }
        function checkPassword(psd) {
            if (psd == "") {
                document.getElementById("checkPassword").innerHTML = "密码不能空";
            } else {
                document.getElementById("checkPassword").innerHTML = "";
            }
        }
        function checkInput() {
            var Name = document.getElementById("tbyhmc");
            var Psd = document.getElementById("tbyhmm");
            if (!Name.value) {
                alert(" 用户名不能空");
                return false;
            }
            if (!Psd.value) {
                alert("密码不能空");
                return false;
            }
            return true;
        }

</script>
    <style type="text/css">
        .style1
        {
            width: 36%;
        }
        .style2
        {
            width: 20%;
        }
    </style>
</head>
<body>
     <form id="form1" runat="server">
    <div style="height: 100%">
    <div style=" text-align:right;margin-top:200px; margin-bottom:10px; height: 72px; border-top:1px solid #aaa;">
    <div style="width:506px; height:30px;  margin-top:40px; margin-left:auto; margin-right:auto;">
    <a  style=" font-family:华文隶书; font-weight:bolder;font-size:xx-large; margin-top:30px;">农业科技产出分析与学科评价系统</a>
    </div>
    </div>
    <div style=" width:inherit;height: 194px; border-bottom:1px solid #aaa; 
        background-image:url(../Images/loginbackground.jpg);background-repeat:repeat-x;">
    
    <div style=" width:266px; height:128px;  margin-left:auto; margin-right:auto;">
        <table style="height:120pt; width:357pt; ">
            <tr>
                <td class="style2">
                    <asp:Label ID="Label1" runat="server" Text="用户名称:"></asp:Label><!-- 服务器控件 -->
                </td>
                <td class="style1">
                    <asp:TextBox ID="tbyhmc" runat="server" οnblur="checkName(this.value)" 
                        Width="161px"></asp:TextBox>
                </td>
                <td>                    
                    <label id="checkName" style=" font-family:'华文行楷'"></label>
                </td>
            </tr>
            <tr>
                <td class="style2">
                    <asp:Label ID="Label2" runat="server" Text="用户密码:"></asp:Label>
                </td>
                <td class="style1">
                    <asp:TextBox ID="tbyhmm" runat="server" οnblur="checkPassword(this.value)" 
                        TextMode="Password" Width="160px"></asp:TextBox>
                </td>
                <td>                    
                    <label id="checkPassword" style=" font-family:'华文行楷'">
                    </label>
                </td>
            </tr>
            <tr>
                <td class="style2">
                     </td>
                <td class="style1"><!--WEB 控件 类似html元素 具备一些只有ASP.NET才能使用的其他功能 -->

                    <asp:Button ID="Button1" runat="server" οnclick="Button1_Click" Text="登    录" 
                        Width="68px" OnClientClick="checkInput()" />
                    
                     <asp:Button ID="Button2" runat="server" CausesValidation="False" 
                        οnclick="Button2_Click" Text="取    消" Width="66px" />
                </td>
                <td>
                    <asp:Label ID="Label3" runat="server" Text=""></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style2">
                </td>
                <td class="style1">
                     
                    </td>
                <td>
                </td>
            </tr>
        </table>
    </div>
    </div>
    </form>
</body>
</html>

Login.aspx.cs


namespace Web.Admin
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Label3.Text = "用户名或密码错误!";
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string userName = this.tbyhmc.Text;
            string userPassword = this.tbyhmm.Text;
            UserManager checkUser = new UserManager();
            if (checkUser.Login(userName, userPassword) != null)
            {
                Session["user"] = new user { UserName = userName, UserPassword = userPassword };
                Response.Redirect("../MasterForm.aspx");
            }
            else
            {
                this.Label3.Text = "用户名或密码错误!";
            }
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("../MasterForm.aspx");
        }
    }
}


UserManger【BLL】

namespace BLL.Function
{
    public class UserManager
    {

        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="name">用户名</param>
        /// <param name="pwd">密码</param>
        /// <returns>管理员对象信息</returns>
        public user Login(string name, string pwd)
        {
            return DbAccess.CreateUser().Login(name, pwd);
        }

        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="adminName">用户名称</param>
        /// <param name="newPwd">新密码</param>
        /// <param name="oldPwd">旧密码</param>
        /// <returns>修改成功</returns>
        public int ChangePwd(user oldInfo, string newPwd)
        {
            return DbAccess.CreateUser().ChangePwd(oldInfo, newPwd);
        }
    }
}


UserDb【DAO】

namespace DAO.Impl.Function
{
    public class UserDb : IUser
    {
        private const string PARA_USERNAME = "@USERNAME";
        private const string PARA_USERPASSWORD = "@USERPASSWORD";
        private const string PARA_USERNEWPASSWORD = "@PARA_USERNEWPASSWORD";

        private const string SQL_QUERYBYNAME = "SELECT USERNAME,USERPASSWORD FROM TB_YH WHERE USERNAME=@USERNAME AND USERPASSWORD=@USERPASSWORD";
        private const string SQL_UPDATE = "UPDATE TB_YH SET USERNAME=@USERNAME,USERPASSWORD=@PARA_USERNEWPASSWORD WHERE USERNAME=@USERNAME AND USERPASSWORD=@USERPASSWORD";
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="name">用户名</param>
        /// <param name="pwd">密码</param>
        /// <returns>管理员对象信息</returns>
        public user Login(string name, string pwd)
        {
            user loginUser = null;
            // 声明参数数组并赋值
            SqlParameter[] _param =
			{
				new SqlParameter(PARA_USERNAME, SqlDbType.VarChar,32), //动态绑定参数
				new SqlParameter(PARA_USERPASSWORD, SqlDbType.VarChar,16)               
			};

            _param[0].Value = name;
            _param[1].Value = pwd;
            /*
             *       /// <param name="connection">数据库连接</param>
        /// <param name="commandText">SQL语句</param> CommandType.Text代表执行的是SQL语句
        /// <param name="parms">查询参数</param>
        /// <returns>返回只读数据集</returns>
             * 
             * 
             */

            using (SqlDataReader dr = SqlHelper.ExecuteReader(DbConnectString.ConnectionString, CommandType.Text, SQL_QUERYBYNAME, _param))
            {
                while (dr.Read())
                {
                    loginUser = GetEntityClasFromDataReader(dr);
                }
            }
            return loginUser;
        }
        #region  IDataReader转换成实体
        /// <summary>
        /// 得到  user 数据实体
        /// </summary>
        /// <param name="dr">dr</param>
        /// <returns>实体类</returns>
        private user GetEntityClasFromDataReader(IDataReader dr)
        {
            user Obj = new user();
            Obj.UserName = dr["USERNAME"].ToString();
            Obj.UserPassword = dr["USERPASSWORD"].ToString();
            return Obj;
        }
        #endregion
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="adminName">用户名称</param>
        /// <param name="newPwd">新密码</param>
        /// <param name="oldPwd">旧密码</param>
        /// <returns>修改成功</returns>
        public int ChangePwd(user oldInfo, string newPwd)
        {
            // 声明参数数组并赋值
            SqlParameter[] _param =
			{
				new SqlParameter(PARA_USERNAME, SqlDbType.VarChar,32), 
				new SqlParameter(PARA_USERPASSWORD, SqlDbType.VarChar,16),
                new SqlParameter(PARA_USERNEWPASSWORD, SqlDbType.VarChar,16)
			};

            _param[0].Value = oldInfo.UserName;
            _param[1].Value = oldInfo.UserPassword;
            _param[2].Value = newPwd;

            //  返回
            return SqlHelper.ExecuteNonQuery(DbConnectString.ConnectionString, CommandType.Text, SQL_UPDATE, _param);
        }

    }
}

3.using语句,定义一个范围,在范围结束时处理对象。 
场景: 
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。 
要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值