烟台南山学院计算机与电气自动化学院
动态网页制作ASP.NET实训报告( 2012 ~ 2013 )学年第 1 学期)
姓 名: *** 学 号: 2010410***** 专 业: 计算机科学与技术 班 级: 计科 指导教师: ***
《动态网页制作ASP.NET》实训报告
日 期 | 2012.12.24-2012.12.28 | 地 点 | 68#306 |
项目名称 | 《学习论坛BBS系统》 | ||
实训目的能力目标 | ASP.NET实训主要是让我们来做一个学习论坛(BBS系统),通过代码让整个系统能正常的运行,通过写每个页面的后台代码,让我们巩固了之前学的知识,又有进一步的加深,更能理解ASP.NET的框架以及结构,熟悉ASP.NET应用程序的运行环境及开发平台,其内置对象以及的属性以及其方法,以及其界面的设计。 | ||
实训要求: 1、实训期间每天登记考勤,作为实训成绩的一部分。2、实训期间不能玩游戏、看电影、小说等做与学习无关的事。如果有不遵守的同学将取消当天成绩。3、每天必须按照指导教师实训安排完成当天的实训项目,并经过老师的检查。4、完成整个实训以后,要求每人写出实训报告。5、实训报告要求有插图,模块关键代码及注释。 | |||
实训内容:实训项目名称:学习论坛(BBS)系统(过程及步骤)系统功能分析与设计 用户注册。用户名不允许重名;用户登录。允许注册用户和访客登录;查询主帖。分页显示主帖的标题等信息;查看详细信息。查询主帖的详细信息及其全部回复信息;发表新帖。可以输入新帖并将其插入数据库中;回复帖。对某个主帖进行回复;管理员登录。只允许管理员登录; EMBED Visio.Drawing.11 数据库设计 数据库名称:LearningForum数据表:用户表 字段:用户名(唯一标识)、密码; 主帖表 字段:ID(整型,自动增量)、发帖者用户名、主帖标题、主帖内容、发帖时间、用户机器IP; 管理员信息表 字段:管理员用户名、密码; 触发器 用以实现当删除了主帖表(假设名topic)中的帖子时,同时也要删除回帖表(假设名reply)中此帖的回复帖子。触发器创建代码如下:(ID为主帖表中的ID) create trigger trigger_deleteon topicfor deleteasbegin delete from reply where ID in (select ID from deleted)end | |||
三、项目文件夹及公共类的设计 四、模块设计、编码与调试 本项目的模块如下主页 用户注册。 //点击提交按钮事件 protected void btnOK_Click(object sender, EventArgs e) { if (Page.IsValid) //若Page.IsValid的属性未true,表示页面中所有验证控件均通过了验证 { lblPass.Text = "<b>用户输入数据通过验证</b>"; } else { lblPass.Text = "<b>用户输入数据没有通过验证</b>"; } //数据库的连接 string uname = txtUsrename.Text; string upassword = txtPassword.Text; string sql="insert into users values(' "+uname+" ','"+upassword+"')"; //建立连接 SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); conn.Open(); SqlCommand cmd = new SqlCommand();//创建操作对象 cmd.Connection = conn; cmd.CommandText = sql; bool doredirect = true; try { cmd.ExecuteNonQuery(); } catch { doredirect = false; lblPass.Visible = true; lblPass.Text = "注册失败!"; } finally { cmd.Dispose(); conn.Close(); conn.Dispose(); } if (doredirect) { Response.Redirect("Login.aspx"); } }用户登录。 if (Page.IsValid) //若Page.IsValid的属性未true,表示页面中所有验证控件均通过了验证 { lblPass.Text = "<b>用户输入数据通过验证</b>"; } else { lblPass.Text = "<b>用户输入数据没有通过验证</b>"; } string uname = txtUsrename.Text.Trim(); string upassword = txtPassword.Text.Trim(); string sql = "select count(*) from users where uname=' " + uname + " 'and upassword='" + upassword + "'"; //建立连接 SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); //查询字符串和链接 int n=0; try { n =(int)cmd.ExecuteScalar();//检索单个值 } catch (Exception ex) { this.lblPass.Visible = true; this.lblPass.Text = ex.Message.ToString(); } finally { cmd.Dispose(); conn.Close(); conn.Dispose(); } if (n!=0) { Session["user"] = uname; Response.Redirect("~/TopicList.aspx"); } else { this.lblPass.Visible = true; this.lblPass.Text = "用户名或密码错误"; } }查看详细信息。 发表新帖。 SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; try { conn.Open(); cmd.CommandText = string.Format("insert into TopicList values('{0}','{1}','{2}','{3}','{4}')", title, topic, username,usertime, GetClientIP()); int n = cmd.ExecuteNonQuery(); if (n > 0) { Response.Redirect("~/TopicList.aspx"); } else { lblAdd.Visible = true; lblAdd.Text = "发表失败"; } } catch(Exception ex) { lblAdd.Visible = true; lblAdd.Text = ex.Message.ToString(); } finally { cmd.Dispose(); conn.Close(); conn.Dispose(); }回复帖。 管理员登录。 protected void cvPassword_ServerValidate(object source, ServerValidateEventArgs args) { args.IsValid = true; if (txtPassword.Text == "") { cvPassword.Text = "必须输入密码!"; args.IsValid = false; return; } } protected void lbReset_Click(object sender, EventArgs e) { this.txtUsrename.Text = ""; this.txtPassword.Text = ""; } protected void btnOK_Click(object sender, EventArgs e) { if快捷指令怎么打开允许不受信任的快捷指令 (Page.IsValid) //若Page.IsValid的属性未true,表示页面中所有验证控件均通过了验证 { lblPass.Text = "<b>用户输入数据通过验证</b>"; } else { lblPass.Text = "<b>用户输入数据没有通过验证</b>"; } string aname = txtUsrename.Text.Trim(); string apassword = txtPassword.Text.Trim(); string sql = "select count(*) from adminUser where aname=' " + aname + " 'and apassword='" + apassword + "'"; //建立连接 SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); //查询字符串和链接 int n = 0; try { n = (int)cmd.ExecuteScalar();//检索单个值 } catch (Exception ex) { this.lblPass.Visible = true; this.lblPass.Text = ex.Message.ToString(); } finally { cmd.Dispose(); conn.Close(); conn.Dispose(); } if (n!= 0) { Session["user"] = aname; Response.Redirect("~/TopicList.aspx"); } else { this.lblPass.Visible = true; this.lblPass.Text = "用户名或密码错误"; } } | |||
实训心得:
对计算机ASP编程的学习已经有很长一段时间了,这次终于借着实训的机会,好好的尝试了一次整个项目的编程,一阵忙碌过后,终于取得了很不错的成果—-完成了BBS论坛的制作,心里别提有多高兴了。回想这个项目开发的整个过程,我有很多很多的感触。其中有策划的艰难,也有编码的辛苦,当然更有成功的喜悦。在整个开发过程中,虽然很忙碌,但我觉得很充实,也很值得。也就是在这段时间里,我学会了怎样与人合作,明白了什么叫苦尽甘来,也体会到了团队力量的强大之处。当然,我们在开发的过程中也曾遇到过不少 HYPERLINK "wenwen.51" \t "_blank" 问题和麻烦,有时候真的很让人泄气,不过我们问老师、问同学,就是没有人退缩过。我也告诉自己要克服一切困难,当我们最终取得了成功时,我觉得我无比的高兴,无比的庆幸自己坚持了下来。坚持到底,没有什么不可以,真的! 感谢学院给我们安排了这周实际而有意义的实训,使的我们真正学到了使用的东西,在实训操作过程中感觉置身于实际工作当中一样,不仅培养了我们实际动手的能力及吃苦耐劳的精神而且还培养了我们主动分析 HYPERLINK "wenwen.51" \t "_blank" 问题和解决 HYPERLINK "wenwen.51" \t "_blank" 问题的能力,培养了我们理论联系实际,实事求是的科学的学习态度,培养了我们严肃认真、塌实细致的工作作风和团结互助的思想品德,同时感谢知道老师给予我们耐心的指导,使我们在实训过程中感受到了学院教育的细致及对学生的负责。… |
分数: 教师签名: 年 月 日 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论