简易在线留言板(上)——树洞留言板

简易在线留言板(上)

本文章属于原创,如若转载请标明出处:
http://blog.csdn.net/FlorenceZKY/article/details/74295704
 本系统开发的是一个极简易的三层架构的在线留言板。系统的开发软件是Visual Studio2013,开发环境是Windows7,浏览器是Chrome(谷歌浏览器)。

一、数据库

1、数据库目录

 该数据库建立在由学校提供的服务器上,链接代码在接下来的代码中说明。

2、数据库表设计

 Users表(用户表,标注:user不能作为表名和属性名,因为user是关键字,这里容易出错。)
这里写图片描述
 Mess表(留言表)
这里写图片描述

二、项目设计

1、项目目录

这里写图片描述
这里写图片描述

2、项目简要说明

(1)实体层Entity:User.cs、EntBlog.cs
(2)数据访问层Dal:SQLHelper.cs、DalUser.cs、DalBlog.cs
(3)业务逻辑层Bll:bllUsers.cs、bllBlog.cs
(4)客户端:WebApp:
 ①CSS文件:这里写图片描述
  pic照片文件
这里写图片描述
  ②母版页:Main.Master(当时是作业要求,但是我只是设置了一个空的母版页,所以这个文件存不存在都无所谓)
  ③主界面:index.aspx
 ④登录、注册、修改密码界面:Login.aspx、Register.aspx、UpdatePassword.aspx
  ⑤管理员界面:AdminPage.aspx、AdminUserPage.aspx
  ⑥普通用户界面:EditBlog.aspx、MyBlog.aspx

3、代码内容

(1)Entity层:
Users.cs(实体用户)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entity
{
    public class EntUsers
    {
        public string Username
        {
            get;
            set;    
        }

        public String Password
        {
            get;
            set;
        }
    }
}

Mess.cs(实体留言)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entity
{
    public class EntBlog
    {
        public string Username
        {
            get;
            set;
        }
        public string Message
        {
            get;
            set;
        }
        public DateTime Time
        {
            get;
            set;
        }
    }
}

Dal层:
SqlHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace Dal
{
    public static class SqlHelper
    {
        private static string strCn = ConfigurationManager.ConnectionStrings["AppConn"].ConnectionString;

        public static SqlDataReader ExecuteReader(string strSql, params SqlParameter[] pms)
        {
            try
            {
                SqlConnection cn = new SqlConnection(strCn);
                cn.Open();
                SqlDataReader dtr = null;
                using (SqlCommand cmd = new SqlCommand(strSql, cn))
                {
                    if (pms != null) cmd.Parameters.AddRange(pms);
                    dtr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//查找完成后关闭连接
                }
                return dtr;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static object ExecuteScalar(string strSql, params SqlParameter[] pms)
        {
            try
            {
                object obj = null;
                using (SqlConnection cn = new SqlConnection(strCn))
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand(strSql, cn))
                    {
                        if (pms != null) cmd.Parameters.AddRange(pms);
                        obj = cmd.ExecuteScalar();
                    }
                }
                return obj;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static int ExecuteNonQuery(string strSql, params SqlParameter[] pms)
        {
            try
            {
                int intResult = 0;
                using (SqlConnection cn = new SqlConnection(strCn))
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand(strSql, cn))
                    {
                        if (pms != null) cmd.Parameters.AddRange(pms);
                        intResult = cmd.ExecuteNonQuery();
                    }
                }
                return intResult;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static DataSet ExecuteQuery(string strSql)
        {
            using (SqlConnection cn = new SqlConnection(strCn))
            {
                DataSet ds = new DataSet();
                try
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand(strSql, cn))
                    {
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        da.Fill(ds, "ds");
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return ds;
            }
        }
    }
}

DalUser.cs(用户数据访问层)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using System.Data;
using System.Data.SqlClient;

namespace Dal
{
    public class DalUsers
    {
        public bool Create(EntUsers Users, out string strMsg)//创建用户
        {
            bool blnRet = false;
            try {
                StringBuilder sb = new StringBuilder(1024);
                sb.Append("INSERT INTO Users");
                sb.Append("(Username,Password)");
                sb.Append("Values (@Username,@Password)");
                SqlParameter[] pms = new SqlParameter[2];
                pms[0] = new SqlParameter("@Username", Users.Username);
                pms[1] = new SqlParameter("@Password", Users.Password);
                blnRet = SqlHelper.ExecuteNonQuery(sb.ToString(), pms) > 0;
                strMsg = blnRet ? "成功创建:“" + Users.Username + " ”用户!" : "用户添加失败!请检查书写! ";
            }
            catch (Exception ex)
            {
                strMsg = "数据操作错误:" + ex.Message;
            }
            return blnRet;
        }

        public bool Exists(string Username, out string strMsg)//检查是否存在用户
        {
            bool blnRet = false;
            try
            {
                StringBuilder sb = new StringBuilder(1024);
                sb.Append("SELECT COUNT(*) AS cnt ");
                sb.Append("FROM Users ");
                sb.Append("WHERE (Username= @Username) ");
                SqlParameter[] pms = new SqlParameter[1];
                pms[0] = new SqlParameter("@Username", Username);
                blnRet = (int)SqlHelper.ExecuteScalar(sb.ToString(), pms) > 0;
                strMsg = "";
            }
            catch (Exception ex)
            {
                strMsg = "操作错误:" + ex.Message;
            }
            return blnRet;
        }

        public  bool Login(EntUsers Users, out string strMsg)//用户登录
        {
            bool blnRet = false;
            try
            {
                StringBuilder sb = new StringBuilder(1024);
                sb.Append("SELECT   * ");
                sb.Append("FROM      Users ");
                sb.Append("WHERE   (Username = @Username) AND (Password = @Password) ");
                SqlParameter[] pms = new SqlParameter[2];
                pms[0] = new SqlParameter("@Username", Users.Username);
                pms[1] = new SqlParameter("@Password", Users.Password);


                object obj = SqlHelper.ExecuteScalar(sb.ToString(), pms);
                if (obj != null)
                    blnRet = true;
                strMsg = "";
            }
            catch (Exception ex)
            {
                strMsg = "数据操作错误:" + ex.Message;

            }
            return blnRet;
        }

        public bool Update(EntUsers Users, out string strMsg)//更新用户信息(修改密码)
        {
            bool blnRet = false;
            try { 
            StringBuilder sb = new StringBuilder(1024);
                sb.Append("UPDATE Users ");
                sb.Append("SET Password = @Password ");
                sb.Append("WHERE (Username = @Username) ");
                SqlParameter[] pms = new SqlParameter[2];
                pms[0] = new SqlParameter("@Password", Users.Password);
                pms[1] = new SqlParameter("@Username", Users.Username);

                blnRet = SqlHelper.ExecuteNonQuery(sb.ToString(), pms) > 0;
                strMsg = blnRet ? "密码修改成功成功!" : "密码修改失败,请检查是否有错!";
            }
            catch (Exception ex)
            {
                strMsg = "数据操作错误:" + ex.Message;
            }
            return blnRet;
        }
    }
}

DalBlog.cs(留言数据访问层)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using System.Data;
using System.Data.SqlClient;

namespace Dal
{
    public class DalBlog
    {
        public bool Create(EntBlog Blog, out string strMsg)//创建留言
        {
            bool blnRet = false;
            try
            {
                StringBuilder sb = new StringBuilder(1024);
                sb.Append("INSERT INTO Mess");
                sb.Append("(Username,Mess,Time)");
                sb.Append("Values (@Username,@Mess,@Time)");
                SqlParameter[] pms = new SqlParameter[3];
                pms[0] = new SqlParameter("@Username", Blog.Username);
                pms[1] = new SqlParameter("@Mess", Blog.Message);
                pms[2] = new SqlParameter("@Time", Blog.Time);
                blnRet = SqlHelper.ExecuteNonQuery(sb.ToString(), pms) > 0;
                strMsg = blnRet ? "成功发布您的留言!" : "发布失败,请过一会再发布! ";
            }
            catch (Exception ex)
            {
                strMsg = "数据操作错误:" + ex.Message;
            }
            return blnRet;
        }
    }
}     

Bll层:
bllUser.cs(用户逻辑业务层)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using Dal;
using System.Data;
using System.Data.SqlClient;

namespace Bll
{
    public class bllUsers
    {
        private DalUsers dal = new DalUsers();
        public bool Create(EntUsers users,out string strMsg)//创建用户
        {
            bool blnRet = false;
            //检查Username有没重名
            if (dal.Exists(users.Username, out strMsg))
                strMsg = (strMsg.Length > 0) ? strMsg : "创建失败!已有用户名称: " + users.Username;
            else
                blnRet = dal.Create(users, out strMsg);
            return blnRet;
        }

        public bool Login(EntUsers users,out string strMsg)//用户登录
        {
            bool blnRet = dal.Login(users, out strMsg);
            strMsg = (blnRet) ? "OK" : ((strMsg.Length > 0) ? strMsg : "登录出错!请检查用户名和密码输入是否正确!");
            return blnRet;
        }

        public bool Update(EntUsers users,out string strMsg)//更新密码
        {
            return dal.Update(users,out strMsg);
        }
    }
}

bllBlog.cs(留言业务逻辑层)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using Dal;
using System.Data;
using System.Data.SqlClient;

namespace Bll
{

    public class bllBlog
    {
        private DalBlog dal=new DalBlog();

        public bool Create(EntBlog entBlog, out string strMsg)
        {
            bool blnRet=false;
            blnRet = dal.Create(entBlog, out strMsg);
            return blnRet;
        }

    }
}

此处内容太多,为了容易查看,请看我博客的 简易在线留言板(中)。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值