`
piperzero
  • 浏览: 3471615 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

asp.net之DataList的使用方法,及分页(存储过程创建),编辑,更新,删除

 
阅读更多

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
BindProduct("1");
}

private void BindProduct(string pageindex)
{
string str = ConfigurationManager.ConnectionStrings["studentCnn"].ConnectionString;
using (SqlConnection sqlCnn = new SqlConnection(str))
{
SqlDataAdapter da = new SqlDataAdapter("sp_Student_Select_by_Page_rowNumber", sqlCnn);
da.SelectCommand.Parameters.AddWithValue("@pageIndex", pageindex);
da.SelectCommand.Parameters.Add("@pageCount", SqlDbType.Int).Direction = ParameterDirection.Output;
da.SelectCommand.Parameters.AddWithValue("@pageSize", 2);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
da.Fill(ds);
this.DataList1.DataSource = ds.Tables[0].DefaultView;
this.DataList1.DataBind();
this.HiddenField1.Value = pageindex;
this.HiddenField2.Value = da.SelectCommand.Parameters["@pageCount"].Value.ToString();

}
} //绑定数据
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if(e.CommandName == "buy")
Response.Write(e.CommandArgument.ToString());
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = e.Item.ItemIndex;
this.BindProduct(this.HiddenField1.Value);
}//编辑
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = -1;
this.BindProduct(this.HiddenField1.Value);
} //取消
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string name = (e.Item.FindControl("TextBox1") as TextBox).Text;
string sex = (e.Item.FindControl("TextBox2") as TextBox).Text;
string age = (e.Item.FindControl("TextBox3") as TextBox).Text;
string str = ConfigurationManager.ConnectionStrings["studentCnn"].ConnectionString;
using (SqlConnection sqlCnn = new SqlConnection(str))
{
SqlCommand sqlcmm = sqlCnn.CreateCommand();
sqlcmm.CommandText = "update student set
sname=@sname,sex=@sex,age=@age where sid=@sid";
sqlcmm.Parameters.AddWithValue("@sname", name);
sqlcmm.Parameters.AddWithValue("@sex", sex);
sqlcmm.Parameters.AddWithValue("@age", age);
sqlcmm.Parameters.AddWithValue("@sid", e.CommandArgument);
sqlCnn.Open();
sqlcmm.ExecuteNonQuery();

}
this.DataList1.EditItemIndex = -1;
this.BindProduct(this.HiddenField1.Value);
} //更新
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string str = ConfigurationManager.ConnectionStrings["studentCnn"].ConnectionString;
using (SqlConnection sqlCnn = new SqlConnection(str))
{
SqlCommand sqlcmm = sqlCnn.CreateCommand();
sqlcmm.CommandText = "delete from student where
sid=@sid";
sqlcmm.Parameters.AddWithValue("@sid", e.CommandArgument);
sqlCnn.Open();
sqlcmm.ExecuteNonQuery();
}
this.BindProduct(this.HiddenField1.Value);
} //删除
protected void Button6_Click(object sender, EventArgs e)
{
this.BindProduct("1");
} //首页
protected void Button9_Click(object sender, EventArgs e)
{
int count = Convert.ToInt32(this.HiddenField2.Value);
this.BindProduct(count.ToString());
} //尾页
protected void Button7_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(this.HiddenField1.Value);
if (index > 1)
index--;
this.BindProduct(index.ToString());
}//上一页
protected void Button8_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(this.HiddenField1.Value);
int count = Convert.ToInt32(this.HiddenField2.Value);

if (index < count)
index++;
this.BindProduct(index.ToString());
}
} //下一页

存储过程的创建:

ALTER PROCEDURE sp_Student_Select_by_Page_rowNumber
@pageSize int, --每页记录数量
@pageCount int output, --总页数
@pageIndex int --当前页索引号


AS
BEGIN
declare @totalRecords int
select @totalRecords = count(sid) from student
if(@totalRecords % @pageSize = 0)
set @pageCount = @totalRecords / @pageSize;
else
set @pageCount = @totalRecords / @pageSize +1;
with temp as (select row_number() over (order by sid) as id,* from student)
select * from temp where id between (@pageIndex -1)*@pageSize +1 and @pageIndex * @pageSize
return @totalRecords
end

分享到:
评论

相关推荐

    ASP.NET 控件的使用

    第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解...

    asp.net开发常用整理集合

     Asp.net手动绑定数据(分页、编辑、删除、加控件等操作)  Asp.net中My97DatePicker4.2日期的使用  Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  ...

    ASP.NET基础控件-教程

     Asp.net手动绑定数据(分页、编辑、删除、加控件等操作)  Asp.net中My97DatePicker4.2日期的使用  Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  MySQL...

    asp.net 快速通用分页空间

    asp.net在快速分页控件。把源码发给大家,以便大家学习,改进。 基于sqlserver 2000存储过程 分页速度快。使用方便 实现了repeater ,datalist ,datagrid,gridview的重载。

    ASP.NET常见问题集锦.zip

    DataList分页、增加、删除、修改实例.doc is as override示例.txt JA_ASP lecture_UML MS Press - Programming Microsoft.Net.chm NET 技术交流与实际应用.ppt net窗体身份验证方案.doc OOAD OOAD.doc O...

    Asp.net C#通用分页类

    但是我用过的几个控件,本身都要执行SQL,对存储过程支持不好,为了方便,特别写了个通用分页类,利用PagedDataSource来实现DataGrid,DataList,Repeater的分页。 完成上一页,下一页,最后一页,最前一页,总页数...

    ASP.NET.4揭秘

    asp.net 4揭秘.第1卷》 第一部分 构建asp.net页面 第1章 asp.net framework概览2 1.1 asp.net和.net framework5 1.1.1 框架类库5 1.1.2 公共语言运行库10 1.2 asp.net控件11 1.2.1 asp.net控件概览11 1.2.2 html控件...

    asp.net2.0简单实用 magicajax+aspnetpager 打造datalist无刷新分页源码,新手学习必备

    asp.net2.0简单实用 magicajax+aspnetpager 打造datalist无刷新分页源码,新手学习必备 数据库使用sqlserver2000默认的northwind,使用前先配置web.config数据库连接路径,然后导入两个存储过程(存储过程.txt)

    ASP.NET存储过程自定义分页详解

    大家都知道Asp.net中的Gridview。datalist等 都可以自定义分页,但是当你翻页的时候,数据 表中的所有数据都会加载到内存,重 新绑定,当 然要是数据量小的话,这是可以的,我们也很乐 意用,原因简单因为方便,但是...

    asp.net知识库

    ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中...

    asp.net技术内幕(1)

    第一部分 使用ASP.NET Web表单 &lt;br&gt;第1章 建立ASP.NET页面 &lt;br&gt;1.1 ASP.NET和.NET框架 1.1.1 .NET框架类库 1.1.2 理解名称空间 1.1.3 标准的ASP.NET名称空间 1.1.4 与.NET框架兼容的语言 ...

    asp.net教学讲义

    1.2.2 ASP.NET应用程序的创建方法 9 1.2.3 Web窗体的特点 10 1.2.4 Web 窗体的功能 10 1.2.5 WEB窗体工作原理 11 1.3 ASP.NET 页的结构 12 1.3.1 @Page指令 13 1.3.2 ASP.NET的服务器端脚本 14 1.3.3 服务器端脚本...

    ASP.NET 3.5 开发大全

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.NET3.5从入门到精通

    11.5.2 ASP.NET 分页控件的使用 11.6 小结 第 12 章 ASP.NET 的皮肤、主题和母版页 12.1 皮肤和主题 12.1.1 CSS 简介 12.1.2 CSS 基础 12.1.3 CSS 常用属性 12.1.4 将CSS 应用在控件上 12.1.5 主题和皮肤 12.1.6 ...

    ASP.NET 3.5 开发大全word课件

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    asp.net web 分页控件

    可以对于datagrid,repeater,datalist,进行快速分页 ,据说存储过程支持千万级数据库,没有测试过。 代码写起来很方便。 附带上数据库的存储过程。希望大家下载。

    ASP.NET 3.5 开发大全11-15

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.NET 3.5 开发大全1-5

    第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 创建ASP.NET网站 4.1.2 单文件页模型 4.1.3 代码隐藏页模型 4.1.4 创建ASP.NET Web Application 4.1.5 ASP.NET网站和ASP.NET应用程序的区别...

    ASP.net技术内幕

    内容包括:ASP.NET Web表单的使用,高级ASP.NET页面的开发,ADO.NET的使用,ASP.NET应用程序的使用, ASP.NET应用程序的保护,ASP.NET Web服务的建立,.NET框架的利用,自定义的ASP.NET控件的建立,ASP.NET的应用...

    asp.net专家疑难解答200问

    第2章 ASP.NET运行模型 21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-...如何在ASP.NET中创建、删除、复制文件 207.如何动态的创建HTML文件 第12章 XML相关处理技术

Global site tag (gtag.js) - Google Analytics