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

news2024/9/24 11:26:25

目录

一、建立数据库:

二、连接数据库:

三、获取所有的列表

 四、实现分页

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

六、项目难点


一、建立数据库:

1.adminss表

 2.columnss表设计及内容

3.messagess表设计及内容

 

二、连接数据库:

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

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

/// <summary>
///dataOperate 的摘要说明
///引用命名空间
/// </summary>
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.在<ItemTemplate>标签中展示

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

 4.

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

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

 <asp:Repeater ID="Repeater1" runat="server" DataSourceID="AccessDataSource2" >
                                <ItemTemplate>
                                    <li>
                                        <a href="#"><%#Eval("messages_title")%></a>
                                        <span><%#Eval("messages_datetime","{0:d}")%></span>
                                        <div class="clearfix"></div>
                                    </li>
                                </ItemTemplate>

                            </asp:Repeater>

7.查看页面

 四、实现分页

1.list.aspx中使用分页的代码
 <div class="fenye">
                <div class="row">
                <div class="col-md-3"></div>
                <div class="col-md-1">
                    当前页:<asp:Label ID="Label1" runat="server" Text="1"></asp:Label>
                    
                </div>              
                <div class="col-md-1">
                    总页数:<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
                </div>   

                <div class="col-md-1">
                    <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">第一页</asp:LinkButton>
                </div>
                <div class="col-md-1">
                    <asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click">上一页</asp:LinkButton>
                </div>
                <div class="col-md-1">
                    <asp:LinkButton ID="LinkButton3" runat="server" onclick="LinkButton3_Click">下一页</asp:LinkButton>
                </div>
                <div class="col-md-1">
                    <asp:LinkButton ID="LinkButton4" runat="server" onclick="LinkButton4_Click">最后一页</asp:LinkButton>
                </div>

                  
                </div>
            </div>
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.效果:

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

1.按照列表页中将所有的数据从数据库中获取出来的方法,获取详细页的内容,依旧使用到 Repeater控件;
<asp:Repeater ID="Repeater1" runat="server">
                       <ItemTemplate>
                                <div class="v-tit">
                                      <%#Eval("messages_title")%>
                                </div>
                           
                                <div class="v-info">
                                    <span>
                                    发布时间:<%#Eval("messages_datetime")%>
                                     </span>
                                     <span>
                                    阅读次数:<%#Eval("messages_cnt")%>
                                    </span>
                                </div>
                            <div class="v-con">
                               
                             <p> 
                                  <%#Eval("messages_content")%>
                            </p>
                            
                            </div> 
                        </ItemTemplate>  

                       </asp:Repeater>

                     <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
                            DataFile="~/App_Data/show.accdb" 
                            SelectCommand="SELECT DISTINCT [messages_content], [messages_title],[messages_cnt],[messages_datetime],[messages_author] FROM [messagess] WHERE (([column1_id] = ?) AND ([column2_id] = ?))">
                            <SelectParameters>
                                <asp:Parameter DefaultValue="1" Name="column1_id" Type="Int32" />
                                <asp:Parameter DefaultValue="4" Name="column2_id" Type="Int32" />
                            </SelectParameters>
                        </asp:AccessDataSource>
2.在列表页中的<a>标签中传递相对应的 messages_id,将信息拼接在地址栏中
<a href="tzhggDet.aspx?column1_id=<%#Eval("column1_id") %>&column2_id=<%#Eval("column2_id") %>&messages_id=<%#Eval("messages_id") %>"><%#Eval("messages_title")%></a>

效果:

 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.效果:

六、项目难点

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能风扇语音控制新方案,高品质语音识别芯片NRK3303

随着人工智能技术的发展&#xff0c;人们可以使用语音助手随时随地进行语音控制电子设备。而针对风扇这种家居电器&#xff0c;智能语音控制的方案相对成熟&#xff0c;受到了越来越多用户的青睐。为了更好地提升用户体验&#xff0c;新一代智能风扇方案引进了语音识别芯片技术…

maven 导入本地jar、maven 安装本地jar

方式一、 将jar放入本地任意目录(不推荐) pom.xml <!-- groupId&#xff1a;cn.myCompany.myCommon 规则&#xff1a;公司性质.公司名.项目名或其它artifactId&#xff1a;jar包 自定义ID&#xff0c;通常与jar包名同名&#xff1b;pom通过groupIdartifactIdversion找到mav…

chatgpt赋能python:Python虚拟环境管理:让你的项目更加独立和可靠

Python虚拟环境管理&#xff1a;让你的项目更加独立和可靠 什么是Python虚拟环境? Python虚拟环境&#xff08;Virtual Environment&#xff09;是一种Python环境隔离的机制&#xff0c;它可以让你在同一个操作系统上创建多个Python环境&#xff0c;互不干扰。这意味着你可以…

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型,PCA预处理降维

【MATLAB第48期】基于MATLAB的REMR-LSTM多次循环递归拓展理论的长短期记忆网络LSTM回归预测模型&#xff0c;PCA预处理降维 在本文中&#xff0c;将展示一个使用多次循环递归拓展&#xff08;REMR&#xff09;理论来改进LSTM回归预测问题。 通过多次循环&#xff0c;优化训练集…

Linux下的tmux的使用

0.前言 您好&#xff0c;这里是limou3434&#xff0c;本次我将给您带来Linux下tmux的使用。 如果您感兴趣也可以看看我的其他内容。 1.tmux的基础概念 tmux是一款在Linux里运行在终端上的软件&#xff0c;可以使得终端具有强大的多任务管理功能&#xff08;以下是在Ubuntu环…

如何做好迭代回顾 1/4

迭代回顾(Retrospective)、二八原则、五个“为什么”(5 Why)、以数据说话、三点估算(PERT)等&#xff0c;大家都可能听过&#xff0c;在网上也能找到相关理论知识&#xff0c;但很多软件开发团队自以为了解&#xff0c;但其实是有误解。“如何做好迭代回顾”会利用一些实际团队…

Linux Mint 21.2 “Victoria “的测试版即将到来

导读Linux Mint 21.2 “Victoria “几乎已经准备就绪&#xff0c;主要开发者Clement Lefebvre证实&#xff0c;开发周期已经结束&#xff0c;这意味着测试版应该很快就会到来。 Linux Mint 21.2是Linux Mint 21系列的第二次更新&#xff0c;它基于Ubuntu 22.04 LTS&#xff08;…

Mybatis源码篇:Mybatis初始化过程分析

文章目录 1. Mybatis初始化过程简述2. Mybatis初始化源码分析2.1 Mybatis初始化时序图2.2 源码分析2.2.1 SqlSessionFactoryUtil测试类代码2.2.2 SqlSessionFactoryBuilder源码2.2.3 XMLConfigBuilder源码2.2.4 SqlSessionFactory相关属性2.2.5 SqlSession相关属性 3. 总结4. 使…

2:PCIe Header配置空间

目录 1.概述 2.Header Type0 2.1 HeaderType字段 2.2 Class寄存器 2.3 Cache Line Size 寄存器 2.4 Subsystem ID 和 Subsystem Vendor ID 寄存器 2.5 Capabilities Pointer 寄存器 2.6 Interrupt Line 寄存器 2.7 Interrupt Pin 寄存器 2.8 Base Address Registe…

el-select如何不显示value,显示value对应的label值

文章目录 select 显示如下发生错误的原因 select 显示如下 el-select在编辑调用的时候一直显示的不是label值&#xff0c;而是本身的value值。尝试了很多种方法&#xff0c;都没有解决。 正常的形式 错误的形式 发生错误的原因 显示不正常&#xff0c;多数是由于得到的数据…

人工智能期末复习(背题家的落幕)

文章目录 一、前言二、选择题&#xff08;10 X 2&#xff09;1、补充2、第一梯队⭐⭐⭐3、第二梯队⭐⭐4、第三梯队⭐ 三、判断题&#xff08;10 X 1&#xff09;1、错误的2、正确的 四、程序填空题&#xff08;10 X 3&#xff09;1、tensorflow搭建模型2、keras模型编译3、Pyt…

AI智慧安监视频融合平台EasyCVR播放HLS流出现报错404是什么原因?

EasyCVR平台支持多协议与多类型设备接入&#xff0c;具体包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等&#xff0c;能对外分发RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台既具备传统安防视频监控的能力&#xff0c;也能接入AI智能分析的…

【强化学习】什么是“强化学习”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

MySQL的存储过程

MySQL 一、存储过程的概念存储过程的优点 二、创建简单的存储过程三、存储过程的参数IN 输入参数OUT 输出参数INOUT 输入输出参数 四、删除存储过程五、存储过程的控制语句条件语句循环语句 一、存储过程的概念 存储过程是一组为了完成特定功能的SQL语句。 存储过程再使用过程…

安装rabbitmqctl问题

RabbitMQ Server 311.18 Setup bat start xited with code 1. 主要对应得erlang版本不对&#xff08;注意 安装过程中一定要对应指定版本&#xff0c;尽量装低一版本&#xff0c;并且erlang选择中间版本&#xff09; RabbitMQ Erlang Version Requirements — RabbitMQ

adb shell后,getevent退出方法

adb shell后&#xff0c;getevent退出方法 输入 exit 然后回车退出

使用 Debian、Docker 和 Nginx 部署 Web 应用

前言 本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 第 1 步&#xff1a;更新和升级 Debian 系统 通过 SSH 连接到服务器。更新软件包列表&#xff1a;sudo apt update升级已安装的软件…

pointNet训练预测自己的数据集Charles版本(二)

之前博客介绍了如何跑通charles版本的pointNet&#xff0c;这篇介绍下如何来训练和预测自己的数据集&#xff0c;介绍如何在自己的数据集上做点云语义分割&#xff0c;此篇的环境配置和博客中保持一致。点云分类较简单&#xff0c;方法差不多&#xff0c;这边就不特地说明了。 …

RFID智能物料仓库管理系统

文章目录 设计任务及要求一、需求分析1.1 硬件图1.1.1 GEC6818开发板模块介绍1.1.2 低频RFID模块 1.2 软件图 二、概要设计2.1 功能流程图2.1.1 模块层次关系2.1.2 防碰撞2.1.3 步骤流程图 三、详细设计3.1 摄像头模块代码3.2 串口初始化模块代码分析3.3 报警模块代码分析3.4 光…

java项目之房屋租赁系统ssm源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的房屋租赁系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&#xff…