收藏 分销(赏)

数据库高级应用实验.doc

上传人:仙人****88 文档编号:8921528 上传时间:2025-03-08 格式:DOC 页数:12 大小:275.50KB
下载 相关 举报
数据库高级应用实验.doc_第1页
第1页 / 共12页
数据库高级应用实验.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述
实验一 新闻发布系统数据库的创建 实验目的: 通过本次实验,创建NewsPub数据库,及三张表,并建立它们的关系图 实验器材: 计算机 实验内容: 1. 打开SqlServer 2005,采用菜单方式创建数据库及数据表,输入服务器名称127.0.0.1,输入账号sa,密码:sasa,登陆到服务器。 2. 在数据库菜单下,新建数据库,命名为NewsPub。 3. 创建三张表,分别是tbNews、tbNewsKinds、tbUsers表 News表结构如下: NewsKinds表的表结构为 Users表结构 4. 根据三张表的字段之间的参考关系,建立关系图NewsDiagram_0 如下 主键为UserId 和NewsKindId,外键为News表中的NewsUserId和 NewsKindId 关系为:外键参照主键。 5 为三张表输入一些记录。输入记录的时候要参照数据完整性 实验二 创建数据库访问类(Sqlhelper) 实验目的: 通过本次实验,掌握数据库访问类建立的以及常用方法 实验器材: 计算机 实验内容: 1. 打开解决方案,在App_Code文件夹里创建数据库底层访问类Sqlhelper.cs类, 2. 编写DataBase类,编写的方法为returnConn()、 CreatCmd(string procName, SqlParameter[] ..................... 其中主要的方法代码如下(选择几个方法的代码就行了) public class DataBase { // public SqlConnection returnConn() { string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["xinguanstr"].ToString(); SqlConnection con = new SqlConnection(conStr); if (con.State == ConnectionState.Closed || con.State == ConnectionState.Broken) { con.Open(); } return con; } /// <summary> /// 执行不带参数的存储过程,得到sqlcommand对象。 /// </summary> /// <param name="procName">存储过程名称</param> /// <param name="conn">连接通路</param> /// <returns></returns> public SqlCommand CreatCmd(string procName, SqlConnection conn) { SqlConnection con = conn; //需要打开连接的代码,如下: if (con.State == ConnectionState.Broken || con.State == ConnectionState.Closed) { con.Open(); } SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = procName; //con.Close(); return cmd; } public SqlCommand CreatCmd(string procName) { SqlConnection con = returnConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = procName; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = con; //con.Close(); return cmd; } /// <summary> /// 执行带参数的存储过程,得到cmd,通过cmd得到reader; /// </summary> /// <param name="procName"></param> /// <param name="prams"></param> /// <returns></returns> public SqlDataReader RunProcGetReader(string procName, SqlParameter[] prams) { SqlCommand cmd = CreatCmd(procName, prams); SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } public SqlDataReader RunProcGetReader(string procName, SqlParameter[] prams, SqlConnection Conn) { SqlCommand cmd = CreatCmd(procName, prams, Conn); SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } public SqlDataReader RunProcGetReader(string procName, SqlConnection Conn) { SqlCommand cmd = CreatCmd(procName ,Conn); SqlDataReader sdr= cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } public SqlDataReader RunProcGetReader(string procName) { SqlCommand cmd = CreatCmd(procName); SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } public DataTable RunProcGetDatatable(string procName, SqlParameter[] prams, SqlConnection conn) { SqlCommand cmd=CreatCmd (procName ,prams ,conn); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds); DataTable dt = ds.Tables[0]; //关闭连接,关不关主要看后面的类用不用。 return dt; } public int RunProcReturnInt(string procName) { SqlCommand cmd = CreatCmd(procName); int i= Convert.ToInt32( cmd.ExecuteNonQuery()); return i; } public int RunProcReturnInt(string procName, SqlParameter[] prams) { SqlCommand cmd = CreatCmd(procName, prams); int i= Convert.ToInt32( cmd.ExecuteNonQuery()); return i; } public int RunProcReturnScalar(string procName) { SqlCommand cmd = CreatCmd(procName); int i =Convert .ToInt32( cmd.ExecuteScalar()); return i; } public int RunProcReturnScalar(string procName,SqlParameter[] prams) { SqlCommand cmd = CreatCmd(procName,prams); int i =Convert.ToInt32( cmd.ExecuteScalar()); return i; } public DataBase() { // // TODO: 在此处添加构造函数逻辑 // } 实验三 创建Users、NewsKinds及News类 实验目的: 通过本次实验,掌握用VS2005建立一个Users类,给定私有字段,共有属性,及常用的方法。 实验器材: 计算机 实验内容: 1. 在App_code中创建Users类,有三个私有字段(参照代码,写出来私有字段),三个共有属性(参照代码,写出来公有属性),给出主要方法名(参照代码,写出一个主要方法的代码)。 2. 在App_code中创建NewsKinds类,有三个私有字段(参照代码,写出来私有字段),三个共有属性(参照代码,写出来公有属性),给出主要方法名(参照代码,写出一个主要方法的代码)。 3. 在App_code中创建News类,有三个私有字段(给出来是什么),三个共有属性(给出来是什么),给出主要方法名(给出一个方法的代码就行了) 实验四 登录界面及用户管理界面设计 实验目的: 通过本次实验,掌握VS2005设计前台登录界面和用户管理主界面。 实验器材: 计算机 实验内容: 1.在解决方案里添加登录页面Login.aspx,在页面中添加一张表,4行3列。依次从工具箱选择label、textbox 和 button,再表中添加3个标签,2个文本框和一个按钮。外观如下: 2、 在解决方案里添加登录页面Admin.aspx,为用户管理页面,使用工具箱控件设计外观如下: 3. 设计Admin.aspx的行为支撑文件Admin.aspx.cs,选择主要代码如下: public partial class Admin:System.Web.UI.Page { Users u1=new Users(); protected void CustomValidator1_ServerValidate(object source,ServerValidateEventArgs args) { string userName=args.Value; if(u1.IsValidateUserName(userName))//如果为真,用户名已存在 { args.IsValid=false;//验证不通过,会显示“用户名已存在” } else { args.IsValid=true; } } protected void btnAddUser_Click(object sender,EventArgs e) { if(Page.IsValid) { Users singleUser=new Users(); singleUser.UserName=this.txtUserName.Text; singleUser.UserPwd=this.txtUserPwd.Text; bool flag=u1.AddUser(singleUser); if(flag) { this.labAddUserMessage.Text="添加用户成功"; } else { this.labAddUserMessage.Text="添加失败"; } } else { this.labAddUserMessage.Text="添加失败"; } this.gvUsers.DataBind(); } } 实验五 新闻显示页面设计 实验目的: 通过本次实验,掌握VS2005设计前台登录界面和用户管理主界面。 实验器材: 计算机 实验内容: 1. 添加ShowNews.aspx页面,设计外观如下: 其中LabCount标签放置总记录数和总页码,其中PageInfo标签放置 当前页、上一页和下一页信息, 2. 给ShowNews.aspx的行为文件ShowNews.aspx.cs添加代码,主要代码如下 //分页的方法 public void BuildPagers() { //偏移量 int Step =10; int LeftNum = 0; int RightNum = 0; string PageUrl = Request.FilePath; int PageCount = (int)Math.Ceiling((double)(totalCountRecond) / pageItem); if (currentPage - Step < 1) { LeftNum = 1; } else { LeftNum = currentPage - Step; } if (currentPage + Step > PageCount) { RightNum = PageCount; } else { RightNum = currentPage + Step; } StringBuilder OutPut = new StringBuilder(); for (int i = LeftNum; i <= RightNum; i++) { if (i == currentPage) { OutPut.Append("<font style='margin-left:3px;' color=red>"); OutPut.Append(i.ToString()); OutPut.Append("</font>"); } else { OutPut.Append("<a style='margin-left:3px;' href='"); OutPut.Append(PageUrl); OutPut.Append("?page="); OutPut.Append(i.ToString()); OutPut.Append(strUrl); OutPut.Append("'>"); OutPut.Append(i.ToString()); OutPut.Append("</a>"); } } if (currentPage > 1) { OutPut.Insert(0, string.Format("<a href='{0}?page={1}{2}'>上一页</a>", PageUrl, (currentPage - 1), strUrl)); } if (currentPage < PageCount) { OutPut.Append("<a href='"); OutPut.Append(PageUrl); OutPut.Append("?page="); OutPut.Append(currentPage + 1); OutPut.Append(strUrl); OutPut.Append("'>下一页</a>"); } this.PageInfo.Text = OutPut.ToString(); this.LabCount.Text = string.Format("总记录数:<font color='red'>{0}</font> 总页数:<font color='red'>{1}</font>",totalCountRecond,PageCount); } 实验六 新闻管理页面设计 实验目的: 通过本次实验,掌握VS2005设计前台登录界面和用户管理主界面。 实验器材: 计算机 实验内容: 3. 添加NewsManage.aspx页面,设计外观如下: 和新闻显示页面相似,添加对新闻的删除、修改和一次删除多行。 4. 给NewsManage.aspx的行为文件NewsManage.aspx.cs添加代码,主要代码如下 //分页的方法 public void BuildPagers() { //偏移量 int Step =10; int LeftNum = 0; int RightNum = 0; string PageUrl = Request.FilePath; int PageCount = (int)Math.Ceiling((double)(totalCountRecond) / pageItem); if (currentPage - Step < 1) { LeftNum = 1; } else { LeftNum = currentPage - Step; } if (currentPage + Step > PageCount) { RightNum = PageCount; } else { RightNum = currentPage + Step; } StringBuilder OutPut = new StringBuilder(); for (int i = LeftNum; i <= RightNum; i++) { if (i == currentPage) { OutPut.Append("<font style='margin-left:3px;' color=red>"); OutPut.Append(i.ToString()); OutPut.Append("</font>"); } else { OutPut.Append("<a style='margin-left:3px;' href='"); OutPut.Append(PageUrl); OutPut.Append("?page="); OutPut.Append(i.ToString()); OutPut.Append(strUrl); OutPut.Append("'>"); OutPut.Append(i.ToString()); OutPut.Append("</a>"); } } if (currentPage > 1) { OutPut.Insert(0, string.Format("<a href='{0}?page={1}{2}'>上一页</a>", PageUrl, (currentPage - 1), strUrl)); } if (currentPage < PageCount) { OutPut.Append("<a href='"); OutPut.Append(PageUrl); OutPut.Append("?page="); OutPut.Append(currentPage + 1); OutPut.Append(strUrl); OutPut.Append("'>下一页</a>"); } this.PageInfo.Text = OutPut.ToString(); this.LabCount.Text = string.Format("总记录数:<font color='red'>{0}</font> 总页数:<font color='red'>{1}</font>",totalCountRecond,PageCount); } 实验七 手机网页留言板练习(二)。 实验目的: 通过本次实验,掌握用MyEclipse8.5建立一手机网页项目,学习并掌握Servlet的创建及Servlet连接数据库和前台页面的方法。 实验器材: 计算机 实验内容: 1. 创建一个Web Project,建立一个JSP网页文件,名称为index.jsp。 2. 设置一个textarea,提交按钮。 3. 通过Navicat 建立数据表Messages,用来存数id,content,ptime,userip。 4. 创建Message.java,设置其 连接数据库及写入数据库id,content userip的方法。 5建立另一个servlet文件,名称为bbsservlet.java,用来连接前台页面和后台Message.java。 6.主页面index.jsp编写代码,如果留言就输出“留言成功。” 7.建立News.java,用来存储数据库中的每条记录,编写setid 级 getid方法。 8. DbBean.java中编写getNews方法,用来提取数据库中内容, 9传递到前台index.jsp页面,输出留言结果。 10,留言结果放到表格里显示。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服