牛腩新闻发布系统概要

开始了B/S项目学习,第一个学习内容就是开发新闻发布系统,跟着牛腩老师的视频学习有几天了,在这个过程

中也积累了点知识,在这里把新闻发布系统的一个轮廓叙述一下了。

系统说明

1、系统的整体功能

就是能够实现后台人员添加新闻,在前台可以浏览新闻并发表评论

2、功能图

3、数据库设计图

4、建表

--建立数据库
create database newssystem
--建立类别表
create table category
(
	id int identity(1,1) primary key,
	[name] varchar(20) not null
)
--建立新闻表
create table news
(
	id int identity(1,1) primary key,
	title varchar(100) not null,
	[content] text not null,
	createTime datetime not null,
	caId int
)

--建立评论表
create table comment
(
	id int identity(1,1) primary key,
	[content] text not null,
	createTime datetime not null,
	userIp varchar(15) not null,
	newsId int
)

5、建立表视图并添加约束

系统前期小收获

数据库设计好之后开始代码实现了,在实现过程中也遇到了一些问题,解决了这些问题,还是蛮有成就感的。

1、在vs中写代码的高效方式

敲完if后,连续按2下tab键,自动加载结构。 方便快捷

if (true)
	{

	}

2、SQL注入导致的数据丢失

如图,在输入框中输入:   娱乐新闻‘)delete category where id=3--

点击修改新闻类别,发现id=3的新闻不见了。

关于防止SQL注入这块内容将在接下来的博客中详细介绍,这里就不多说了。

3、异常处理,换个写法,简化程序。

(1)一般写法 try-catch-finally

        /// <summary>
        /// 执行不带参数的增删改SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">增删改SQL语句或存储过程</param>
        /// <param name="ct">命令类型</param>
        /// <returns></returns>
        public int ExecuteNonQuery(string cmdText, CommandType ct)
        {
            int res;  //默认为0
            try
            {
                cmd = new SqlCommand(cmdText, GetConn());
                cmd.CommandType = ct;
                res = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }

            }
            return res;
        }

(2)优化后写法- 使用using

public int ExecuteNonQuery(string cmdText,CommandType ct)
        {
            int res;
            using (cmd = new SqlCommand(cmdText, GetConn()))
            {
                cmd.CommandType = ct;
                res = cmd.ExecuteNonQuery();
            }
            return res;
        }

4、SQL触发器中的instead of

编写一个delete触发器,当执行delete语句时,触发动作,代替执行delete

-- =============================================
-- Author:		王聚
-- Create date: 2015-06-04 22:11
-- Description: 删除类别触发器
-- =============================================
ALTER TRIGGER  [dbo].[trigCategoryDelete]
   ON  [dbo].[category]
   <span style="color:#ff0000;">INSTEAD OF DELETE
</span>AS
BEGIN
	 declare @caId int
	select @caId=id from deleted
	--删除评论
	delete comment where newsId in (select newsId from news where [email protected])
	--删除新闻
	delete news where [email protected]
	--删除类别
	delete category where [email protected]

END

5、注释中的TODO魅力

在未完成功能模块代码前加上TODO注释后,就有了记忆功能,在vs中,打开视图-任务列表,双击任务自动定位。

小结

1、细节很重要,学习抓好细节,不要急于求成。每当遇到一个新的问题都是值得去探索的,每天积累一些,10

天、20天过后会有不一样的变化,才能感觉到学习到了东西。

2、踏踏实实过完每一天,让每天都有所收获,并将学习的东西及时归仓,才有成就感,否则会感觉虚无。

3、不将就是发现的问题的关键。

时间: 2024-08-01 22:35:19

牛腩新闻发布系统概要的相关文章

牛腩新闻发布系统总结(一)——总体感受

牛腩新闻发布系统的学习差不多用了一个月,我对它的总体评价是"麻雀虽小,五脏俱全",这是我第一次开始接触网页设计,当我把它设计完时,满满的都是成就感,虽然自己按着牛老师的意思做的,不过依旧非常开心. 牛老师的视频看完我首先想说,他是个特别有耐心,全心全意为人民服务的人,完全从初学者的角度出发,第一个让我想看他其他视频的人,这个系统虽然说很小,不过每一步设计都都很关键,很准确,让我这个没有接触过完整项目开发的人不至于跑偏. 首先是项目设计思路:文档编写(数据库设计说明书. 概要说明书.详细

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

牛腩新闻发布系统笔记——怎么写CSS

根据这牛腩学习敲新闻发布系统已经有一段时间了,挺佩服牛腩的,讲那么多东西,我听着也不觉得枯燥,反而有种,一不留神就会错过很多东西的感觉,所以有些地方也是重复又重复的在看. 这篇博客就总结总结小编在学习牛腩新闻发布系统的时候一些笔记.可能知识还比较原生态,but who cares.现在先提炼出来,以后慢慢的体会和升华吧. 牛腩一部分可以说是和机房相似,也是让我从.net到c#的一个过渡.中间一部分就是讲div +css了.里面的知识说多也不多的,根据不同的需求,它又有各种变形和组合,这加起来就有

牛腩新闻发布系统——真假分页

牛腩新闻发布系统已近尾声,牛老师重磅推出真假分页作为压轴,足以见得分页的重要性.我们就一起看一下真假分页的实现以及各自的特点. 一.分页简介 当我们显示足够大的数据量时,所有数据显示在一页上,会造成不必要的麻烦,本着为用户服务的态度,我们往往采用分页显示的处理办法.分页主要分为真分页与假分页. 假分页: 从数据库一次性取出所有数据绑定到控件上,再将所有数据根据每页显示记录条数进行分页.当数据量 比较大时,这种分页方法会造成查询速度, 使用户体验度降低,但是跳页速度较快. 真分页:在执行查询操作的

浅谈牛腩新闻发布系统

结束了漫长的C/S之旅,跨入B/S的学习,一切又是崭新的,充满希望. B/S的学习首先接触的便是牛腩老师的新闻发布系统,看了这么多年的网页终于要自己来编写一个网页了着实还是让我小小激动了一把.但是敲这个系统的时候总是有一种走迷宫,迷迷茫茫的感觉,什么跟什么啊... 于是,我机智的决定我要先把视频看一遍,至少要看一多半,至少得让我直到这个系统大概的框架吧.看了一半多终于形成了一个模糊的框架: 牛腩新闻发布系统分为前台和后台两部分,个人理解其实就像我们机房收费的UI层和B,D层的关系,前台负责显示给

牛腩新闻发布系统总结——网站发布和分页制作

牛腩新闻发布系统的视频看了将近半个月的时间,今天成功地把它发布了,哈哈.第一次看教学视频看得这么专注,都不带走思的,很不错.给小牛老师赞一个,嘿嘿! 言归正传,每学完一个阶段,最重要的就是总结,所以就允许我以倒序的形式,颗粒归仓吧! 牛腩新闻发布系统的发布 参考博文: win7下IIS的安装和配置 http://www.jb51.net/article/29787.htm VS2010网站发布详解 http://wanghaitaoboke.blog.163.com/blog/static/17

牛腩新闻发布系统总结(四)--知识点滴

紧接上篇博客:牛腩新闻发布系统总结(三)----知识点滴,继续我们的总结: 第五,在回复评论后如何保持滚动条的位置不变: <%@ Page Title="新闻内容-牛腩新闻发布系统" Language="C#" MasterPageFile="~/common.Master" AutoEventWireup="true" CodeBehind="newsContent.aspx.cs" Inherit

牛腩新闻发布系统--重构SQL Helper

天外有天,人外有人.自我进提高班以来,一直都在考虑,先前重构机房的时候,看到别人在D层加了SQL Helper,就一定要学者加上玩玩,等做完了以后,进行下一个阶段牛腩的时候,又看到了人家建的SQL Helper,不觉感慨,跟人家比,人家就是我的老师! 闲话就不多说了,进行正式的话题:如何写好SQL Helper?从宏观上讲,SQL Helper是完全体现了面向对象的抽象和封装的思想的.它对重复代码抽取出来,进行抽象,抽象就是为了封装,提高了代码的复用. 那么就该讨论怎么写的问题.如果我先上来给大

【牛腩新闻发布系统】----你的验证码正确么

前言 这是一个神奇的网站--牛腩新闻发布系统,虽然做的不咋地,但毕竟是自己动手敲出来,还是有一点点的满足感.同时这也是小编的第一个雠小鸭,长相不算漂亮,发育还是挺健全的. 终有一天我的丑小鸭会变成白天鹅. 一步一步的进化,一步一步的蜕变-- 你的验证码正确么 哎呀--为什么我的牛腩新闻发布系统   请输入验证码的图片一直为这个样子呀--不显示,就是不显示图片,图片加载出错呀.想想估计是图片路径不正确. 尝试一:牛老师说的图片加载路径 <img src="handler/WaterMark.