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

news/2024/12/22 9:05:05/

目录

一、建立数据库:

二、连接数据库:

三、获取所有的列表

 四、实现分页

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

六、项目难点


一、建立数据库:

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.添加和删除数据用adldatapublic  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.ppmy.cn/news/596333.html

相关文章

0.77英寸!东芝发布全球最薄的带光驱笔记本

东芝宣布发布一款目前最薄的内置光驱笔记本Portege R500,她是一台12寸笔记本,只有0.77英寸那么薄,更让人惊讶的是如此薄的机身竟然是内置光驱的,而光驱本身只有7mm那么薄. 她 采用 Intel Core 2 Duo U7600 双核心超低电压处理器,运行在1.2GHz下,内置GMA950显示卡,支持2GB内存和…

东芝L730-T21N使用总结

因辞职所以归还了公司的Thinkpad T410i&#xff0c;入手一台东芝L730-T21N&#xff0c;卖家淘宝&#xff0c;花费RMB:3850 顺丰包邮&#xff0c;送一个原装的东芝2G内存及其他赠品。用了一周&#xff0c;与T410i相比总结如下&#xff1a; 1.散热效果好。风扇转速很低&#xff0…

东芝AT270 USB调试

有个东芝AT270&#xff0c;Android系统&#xff0c;连接电脑后可以在“我点电脑”中看到at270的图标&#xff0c;也可以打开进入at270的存贮设备&#xff1b; 但是却没有办法通过360助手或者百度助手连接打开&#xff0c;提示没有找到设备&#xff1b;已经勾选了开发者选项中的…

GPT快速分区

经过刚刚的“转换分区表类型为GUID格式”设置之后&#xff0c;现在分区的分区表类型已经是GPT格式了。我们设置想要分区的数目&#xff0c;例如我想要分两个区&#xff0c;点击自定选择2个分区&#xff0c;系统C盘分了80G&#xff0c;剩下空间留给了D盘。默认勾选“创建新ESP分…

python脚本实现实验室服务器断网自动重连

系统&#xff1a;Ubuntu22.04 selenium4和之前的版本不一样&#xff0c;在网上找的代码就报错说某某函数被弃用了。。。 步骤一&#xff1a;驱动问题 就是要下载个启动自己浏览器的驱动&#xff0c;我用的是chrome chrome驱动下载 火狐的自已搜吧 下载完直接放在脚本对应的文…

d3dcompiler_47.dll丢失怎么解决(解决方案)

d3dcompiler_47.dll在Windows操作系统和 DirectX应用程序中使用此 DLL 文件,包括游戏&#xff0c;图形处理软件&#xff0c;CAD软件和其他3D应用程序中。如果电脑提示“由于找不到d3dcompiler_47.dll&#xff0c;无法继续执行此代码”&#xff0c;“d3dcompiler_47.dll缺失”&a…

【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址(1)

【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址&#xff08;1&#xff09; 爬取结果&#xff1a; 火狐&#xff08;Firefox&#xff09;如何移除add security exception添加的网站&#xff1a;http://blog.itpub.net/26736162/viewspace-2286064/ 如何将网页…

互联网从此没有 BAT

根据 Wind 数据截止2019年8月30日&#xff0c;中国十大互联网上市公司排名中&#xff0c;百度排名第 6 位市值 365 亿美元&#xff0c;阿里巴巴排名第一市值高达 4499 亿美元&#xff0c;腾讯排名第二市值 3951 亿美元。 01.最新梯队 排在第一的阿里巴巴和排在第二的腾讯市值几…