黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页

目录

 

一、建立数据库:

二、连接数据库:

三、获取所有的列表

 四、实现分页

 五、实现列表页和详细页的绑定

六、项目难点


 

一、建立数据库:

1.adminss表

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第1张图片

 2.columnss表设计及内容

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第2张图片

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第3张图片3.messagess表设计及内容

 黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第4张图片

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第5张图片

二、连接数据库:

文件中App_Code-----》dataOperate.cs的代码为:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.OleDb;

/// 
///dataOperate 的摘要说明
///引用命名空间
/// 
public class dataOperate
{
	public dataOperate()
	{
		//
		//TODO: 在此处添加构造函数逻辑
		//
	}
    //createconnection方法用来连接数据库。此方法返回类型为oledbconnection,主要用来构建数据库的连接。
    //1.创建数据库连接createconnection()
    public OleDbConnection createconnection()
    {
        OleDbConnection connn = new OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=|datadirectory|show.accdb");
        return connn;
    
    }
    //2.rows(string sql,string table)方法用来查找并返回多行数据。此方法返回一个datatable对象。再次调用此方法时应注意两个string类型的参数;
    //第一个参数执行sql语句;第二个参数表示表名。
    public DataTable rows(string sql, string table)
    { //连接 命令 桥梁 虚拟数据库 填充数据 数据绑定
        OleDbConnection conn = createconnection();
        OleDbCommand cmd = new OleDbCommand(sql,conn);
        OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
        DataSet ds = new DataSet();
        adp.Fill(ds,table);
        return ds.Tables[table];
    }
    //adldata(string sql)方法用来添加或者删除更新数据。此方法返回一个布尔值,用来便是添加或者删除数据是否成功,执行成功返回true;否则返回false。
    //调用此方法时应传入一个string类型的参数,此参数用来表示执行的SQL语句。
    //3.添加和删除数据用adldata
    public  bool adldata(string sql)
    {
    
        OleDbConnection conn=createconnection ();
        OleDbCommand cmd=new OleDbCommand(sql,conn);
        conn.Open();
        int i=cmd.ExecuteNonQuery();
            if(i>0)
            {
                return true;
            
            
            }
            else
            {
                return false;
            
            }

    
    
    }
    //单行数据的查询,返回一行数据
    public OleDbDataReader row(string sql)
    {
        //连接 命令 桥梁 虚拟数据库 填充数据 数据绑定
        OleDbConnection conn = createconnection();
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        //打开数据库
        conn.Open();
        OleDbDataReader dr = cmd.ExecuteReader();
        //返回
        return dr;
      }
    //更新单行数据
    //返回一行数据
    public void updateData(string sql)
    {
        //连接 命令 桥梁 虚拟数据库 填充数据 数据绑定
        OleDbConnection conn = createconnection();
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        //打开数据库
        conn.Open();
        cmd.ExecuteNonQuery();
        //关闭
        conn.Close();
    }
    //添加、更新、删除
    public bool addDeleteUpdataData(string sql)
    { //updata
        //连接数据库
        OleDbConnection conn = createconnection();
        //命令
        OleDbCommand cmd = new OleDbCommand(sql,conn);
        //打开数据库
        conn.Open();
        //执行非查询语句
        if(cmd.ExecuteNonQuery()>0)
        {
            return true;
        }
        else
        {
            return false;
        
        }
    
    
    }
}

三、获取所有的列表

1.使用工具箱---》数据---》Repeater控件

2.在标签中展示

3.点击设计--》选择数据源

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第6张图片

 4.黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第7张图片黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第8张图片

 5.测试一下,是否是需要的数据,如果是,选择  完成 即可

黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第9张图片

 6.将需要展示的信息用 <%#Eval()%> 来展示

 
                                
                                    
  • <%#Eval("messages_title")%> <%#Eval("messages_datetime","{0:d}")%>
  • 7.查看页面

    黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第10张图片

     四、实现分页

    1.list.aspx中使用分页的代码

     
    当前页:
    总页数:
    第一页
    上一页
    下一页
    最后一页

    2.list.aspx.cs代码(实现分页功能)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class list : System.Web.UI.Page
    {
        dataOperate mydo = new dataOperate();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {           
                bindtoRepeater1();
            }
    
        }
        protected void bindtoRepeater1()
        {
            //获取数据库的信息,request.questring:获取地址栏参数
            //string id = Request.QueryString["column2_id"];
            //获取或者设置为填充列表提供数据源
            string sql = "select * from messagess where column2_id=4";
            //Pageddatasource类,实现分页功能
            //Allowpagging:是否启用分页设置  true
            //Pagesize:在单页显示的页数
            //Pagecount:显示数据源中所遇到所需的总页数
            //Currentpageindex:当前页数的索引,默认为0;
            //DataSource数据源
            PagedDataSource pds = new PagedDataSource();//实例化
            pds.DataSource = mydo.rows(sql, "list666").DefaultView;
            pds.AllowPaging = true;
            pds.PageSize = 5;   // 每页展示的数据数量
            Label2.Text = Convert.ToString(pds.PageCount);//给总页数标签赋值,先要进行字符转换
            int currentpage = Convert.ToInt32(Label1.Text);//当前那页码数
            pds.CurrentPageIndex = currentpage - 1;
            LinkButton1.Enabled = true;
            LinkButton2.Enabled = true;
            LinkButton3.Enabled = true;
            LinkButton4.Enabled = true;
            if (currentpage == 1)//当前页为首页
            {
                LinkButton1.Enabled = false;
                LinkButton2.Enabled = false;
    
    
            }
            if (currentpage == pds.PageCount)
            {
    
                LinkButton3.Enabled = false;
                LinkButton4.Enabled = false;
    
            }
    
            //把sql,list444传到公共类后面的四个命令,最后再传导前端
            Repeater1.DataSource = pds;
            Repeater1.DataBind();
    
        }
        //private void bindtoRepeater1()
        //{
        //    throw new NotImplementedException();
        //}
        protected void LinkButton1_Click(object sender, EventArgs e)
        {//第一页
            Label1.Text = "1";
            bindtoRepeater1();
        }
        protected void LinkButton2_Click(object sender, EventArgs e)
        {//上一页
            Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) - 1);
            bindtoRepeater1();
        }
        protected void LinkButton3_Click(object sender, EventArgs e)
        {//下一页
            Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
            bindtoRepeater1();
        }
        protected void LinkButton4_Click(object sender, EventArgs e)
        {//最后一页
            Label1.Text = Label2.Text;
            bindtoRepeater1();
        }
    }

    3.效果:

    黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第11张图片

     五、实现列表页和详细页的绑定

    1.按照列表页中将所有的数据从数据库中获取出来的方法,获取详细页的内容,依旧使用到 Repeater控件;

    
                           
                                    
    <%#Eval("messages_title")%>
    发布时间:<%#Eval("messages_datetime")%> 阅读次数:<%#Eval("messages_cnt")%>

    <%#Eval("messages_content")%>

    2.在列表页中的标签中传递相对应的 messages_id,将信息拼接在地址栏中

    &column2_id=<%#Eval("column2_id") %>&messages_id=<%#Eval("messages_id") %>"><%#Eval("messages_title")%>

    效果:87f75cf2f7dd452585dbde660dfa3fa7.png

     3.在详细页的 .cs文件中获取id

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class tzhggDet : System.Web.UI.Page
    {
        dataOperate mydo = new dataOperate();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                bindtorepeater1();
            }
        }
    
    
        protected void bindtorepeater1()
        {
            //获取数据库的信息,request.questring:获取地址栏参数
            string id = Request.QueryString["messages_id"];
            //获取或者设置为填充列表提供数据源
            string sql = "select * from messagess where messages_id=" + id;
            //把sql,list444传到公共类后面的四个命令,最后再传导前端
            Repeater1.DataSource = mydo.rows(sql, "list888").DefaultView;
            Repeater1.DataBind();
        }
    }

    4.列表页和详细页已实现绑定

    5.效果:

    黑河学院ASP.NET程序设计大作业(2)--分页、列表和详细页_第12张图片

    六、项目难点

    遇到很多问题,自己上网找视频+瞎琢磨,完成了要求;

    遇到的问题目前都已解决,未及时的记录问题(小遗憾)

     

     

     

    你可能感兴趣的:(asp.net大作业,asp.net,microsoft)