课程设计说明书 NO. 16
自定义方法bindSport()方法用来绑定视频频信息。由于其他视频信息的绑定类似。在该方法中通过使用SQL语句。查询出体育视频的信息并使用公告类型中的getRow是()方法返回的Data对象绑定到DataList控件中。代码实现如下: protected void bindSport() { string sqlSel = \top 10 * from videoInfo where videoType='体育' and Auditing=1 order by videoDate desc\ dlSport.DataSource = operateData.getRows(sqlSel).DefaultView; dlSport.DataBind(); } 在“登录”按钮的单击事件中实现了用户登录功能。在该事件中首先将判断用户是否已登录,如过登录将清空Session对象。通过获取用户登录名和密码创建SQL语句,来查询用户登陆录名和密码是否存在。如果存在表示登录成功。登录成功后还需要判断该用户是否已被管理员冻结。判断用户表中lock字段,如果为true,说明已经冻结并给出相应的提示。登录图如图3.9所示。实现代码如下: protected void imgBtnEntry_Click(object sender, ImageClickEventArgs e) { //判断用户是否登录 if (Session[\ { Session[\ } //获取登录名 string userName = txtUserName.Text; //获取密码 string pass = txtUserPass.Text; //编写SQL语句,查询用户名和密码是否正确 string sqlSel = \ //调用自定义方法执行SQL语句 if (operateData.login(sqlSel, userName, pass)) { //保存用户名 Session[\ //编写SQL语句,指定用户的信息 string sql = \ //调用公共类中的getRow方法执行SQL语句,并接收SqlDataReader对象 SqlDataReader sdr = operateData.getRow(sql); //读取一条记录 sdr.Read(); //判断当前用户是否锁定 if (Convert.ToBoolean(sdr[\ { 沈 阳 大 学
课程设计说明书 NO. 17
//如锁定Session设置为空,并给出提示 Session[\ RegisterStartupScript(\\+ sdr[\+ \ } else RegisterStartupScript(\\登录成功!');location='index.aspx'\ } else { RegisterStartupScript(\用户名或密码错误!')\ txtUserName.Text = txtUserPass.Text = \ } 图10用户登录图 3.5.3播放视频并发表评论 3.5.3.1页面技术分析 网友在欣赏玩视频后,可以根据自己的喜好对视频进行投票。如图11所示 图11视频投票 沈 阳 大 学
课程设计说明书 NO. 18
为了防止虚假投票的结构,可以采用一个IP地址只能头一次的方式。在一般的投票模块中都会使用Cookie来防止重复投票,但是由于Cookie存储在客户端也可以造成虚假投票,本程序使用数据库来保存投票者的IP来防止重复投票。使用IP来防止重复投票的主要思路是获取客户的IP,判断此IP是否已经投过票,如果已投过将给出提示,若未投过则将IP保存到数据库中。获取客户端的IP地址可以使用Request对象UserHostAdress属性。 3.5.3.2控制并显示文本框的字符数量 在用户发表评论时使用了限制文本框中输入字符个数的功能。在用户未输入评论前使用Label控件显示一个500字的提示,该提示表示用户最多只能输入500个字符。用户输入一个字符Label将会显示500减去输入的字符个数而获得的结果。当用户输入的字符超过500个后,光标就会跳转到第500个字符后的位置。如图12所示: 图 12评论区 该技术主要是通过文本框的onKeyUP事件中调用javascript自定义函数change。函数实现代码如下: 3.5.3.2使用计时方式显示评论的发表时间 以前,发布评论的时间都是以日期的形式显示的,例如,某年某月某日的几点几分发布的评论。本程序中发布的时间实在24小时内,会以几小时、几分、几秒前发布的评论的形式显示,如图13所示: 该功能在getDate()方法中实现。该方法主要是通过将两个日期相减后,判断差值是在几秒内或几分钟内还是几小时内来设置显示文本。在这里使用了TimeSpan对象来保存两个日期的间隔,并使用TotalSecond属性将两个日期的差值转换为秒数。 TotalSeconds属性用于表示整秒数和小数部分表示当前TimeSpan对象的两个时间间隔值,语法如下: Public double TotalSeconds{ get;} 图13以评论区 沈 阳 大 学
课程设计说明书 NO. 20
4.设计体会 通过这次课程设计。学到了许多有关软件开发,数据库管理设计的知识。 在这次课程设计中,对ASP.NET这门课程有了更深的了解,课程设计不仅需要细心严谨的态度,还需要充分发挥想象力。细节决定成败这句话在程序设计中最恰当不过了,因为一个小小的错误代码就可以使整个的程序无法进行,有时候绞尽脑汁也没能找出错误所在,只好老老实实的从新进行编写工作。所以课程不仅理论性强,实际操作性更强,没有一个好的心态很难学好这门课程。 学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物,在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事。 为以后走上程序开发之路打下了牢固的基础。下面对系统的设计与实现做一个总结。 在整个设计过程中,主要的工作有: 系统的权限控制及安全设计,用户密码保护与修改。数据库操作的安全与稳定,尝试着使用函数、存储过程减少业务代码,提高系统性能。 沈 阳 大 学
课程设计说明书 NO. 21
5.参考文献 [1]朱玉超,鞠艳,王代勇. ASP.NET 项目开发教程[M].北京:电子工业出版社,2012.6 [2]刘乃丽.完全手册ASP.NET 2.0网路开发详解[M].北京:电子工业出版,2013.3 [3]尚俊杰,秦卫中. ASP.NET 程序设计案例教程[M]北京:清华大学出版社,2011.3 [4]张悦,舒贵阳等. ASP.NET 2.0快速入门及实例精选[M].北京:电子工业出版社,2011 [5] 胡勇辉,曹倬瑝,兰湘涛. Visual C++实践与提高网络编程篇[J]. 高等理科教育,2011 [6] 龙马工作室.ASP+Access组建动态网站实例精讲[M].北京:人民邮电出版社.2011 [7] 李严,于亚芳,王园辉.ASP.NET数据库开发实例解析[M].北京:机械工业出版社.2012 [8] 张克非.ASP.NET网络程序设计与应用[M].北京:北京航空航天大学出版社2012 [9] (美)微软公司著.NET框架1.1类库参考手册.清华大学出版社,2014.1 [10] 陈伟 编著 《SQL Server 2005数据库应用与开发教程》北京:清华大学出版社,2013 沈 阳 大 学