资源描述
实验一 新闻发布系统数据库的创建
实验目的:
通过本次实验,创建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,留言结果放到表格里显示。
展开阅读全文