Asp.net实现向上向下排序的例子_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:asp.net中包含文件的代码及使用方法
ASP.NET文件包含的方法基本与ASP文件包含差不多! 在ASP.NET包含文件的方法有: 1.% Response.WriteFile(skin/default/footer.txt)% 2.% server.execute(skin/default/footer.txt)% 3.StreamReader 对象将包含文件写到 HTTP 内容流中 //me:网上说asp.net中用include也可

   工作中一些常用到的代码记录下来,方便自己查找也方便其他需要人士参考。

  废话不多说,这是一个向上向下排序的功能,首先使用存储过程 整好 如下:

  SQL:

  -- =============================================

  -- Author:

  -- Create date:

  -- Description:

  -- =============================================

  ALTER PROCEDURE [dbo].[sp_BannerOrder]

  -- Add the parameters for the stored procedure here

  (

  @tablename nvarchar(50), --表名

  @colname nvarchar(50), --排序字段

  @keyid nvarchar(50), --表主键字段

  @keyidvalue int, --表主键字段值1

  @order nvarchar(20), -- 列表默认的排序方式,asc或desc

  @orderDirection nvarchar(20), --排序方向,up或down

  @where nvarchar(2000) --查询条件

  )

  AS

  BEGIN

  declare @ordertmp1 int; --临时排序值id1

  declare @ordertmp2 int; --临时排序值id2

  declare @tmpkeyidvaule nvarchar(50);

  declare @sql nvarchar(2000);

  DECLARE @ParmDefinition nvarchar(500);

  DECLARE @ParmDefinition2 nvarchar(500);

  if @order='asc'

  begin

  SET @sql = N'SELECT @ordertmp1OUT='+@colname+' from '+@tablename+' where '+@keyid+'='+cast(@keyidvalue as nvarchar(50));

  SET @ParmDefinition = N'@ordertmp1OUT nvarchar(20) OUTPUT';

  EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp1OUT=@ordertmp1 OUTPUT;

  if @orderDirection='up'

  begin

  SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from '+@tablename+' where '+@colname+'<'+cast(@ordertmp1 as nvarchar(50))+' and '+@where+' order by '+@colname+' desc';

  end

  else

  begin

  SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from '+@tablename+' where '+@colname+'>'+cast(@ordertmp1 as nvarchar(50))+' and '+@where+' order by '+@colname+' asc';

  end

  SET @ParmDefinition = N'@ordertmp2OUT nvarchar(20) OUTPUT, @tmpkeyidvauleOUT nvarchar(20) OUTPUT';

  EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp2OUT=@ordertmp2 OUTPUT, @tmpkeyidvauleOUT=@tmpkeyidvaule OUTPUT;

  end

  else

  begin

  SET @sql = N'SELECT @ordertmp1OUT='+@colname+' from '+@tablename+' where '+@keyid+'='+cast(@keyidvalue as nvarchar(50));

  SET @ParmDefinition = N'@ordertmp1OUT nvarchar(20) OUTPUT';

  EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp1OUT=@ordertmp1 OUTPUT;

  if @orderDirection='up'

  begin

  SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from '+@tablename+' where '+@colname+'>'+cast(@ordertmp1 as nvarchar(50))+' and '+@where+' order by '+@colname+' asc';

  end

  else

  begin

  SET @sql = N'SELECT top 1 @ordertmp2OUT='+@colname+',@tmpkeyidvauleOUT='+@keyid+' from '+@tablename+' where '+@colname+'<'+cast(@ordertmp1 as nvarchar(50))+' and '+@where+' order by '+@colname+' desc';

  end

  SET @ParmDefinition = N'@ordertmp2OUT nvarchar(20) OUTPUT, @tmpkeyidvauleOUT nvarchar(20) OUTPUT';

  EXECUTE sp_executesql @sql, @ParmDefinition, @ordertmp2OUT=@ordertmp2 OUTPUT, @tmpkeyidvauleOUT=@tmpkeyidvaule OUTPUT;

  end

  set @sql = 'update '+@tablename+' set '+@colname+'='+cast(@ordertmp2 as nvarchar(50))+' where '+@keyid+'='+cast(@keyidvalue as nvarchar(50));

  set @sql = @sql + ' update '+@tablename+ ' set '+@colname+'='+cast(@ordertmp1 as nvarchar(50))+' where '+@keyid+'='+cast(@tmpkeyidvaule as nvarchar(50));

  --select @ordertmp1,@ordertmp2,@tmpkeyidvaule,@sql

  exec(@sql);

  END

  MODEL:

  public class Banner

  {

  public Banner()

  { }

  private int _id;

  private string _smallPic;

  private string _bigPic;

  private int _orderid;

  private string _url;

  private string _title;

  private string _descript;

  //字增量ID

  public int ID

  {

  get { return this._id; }

  set { this._id = value; }

  }

  //BANNER小图

  public string SmallPic

  {

  get { return this._smallPic; }

  set { this._smallPic = value; }

  }

  ///

 

  /// BANNER大图

  ///

 

  public string BigPic

  {

  get { return this._bigPic; }

  set { this._bigPic = value; }

  }

  ///

 

  /// 排序ID

  ///

 

  public int OrderId

  {

  get { return this._orderid; }

  set { this._orderid = value; }

  }

  ///

 

  /// URL地址

  ///

 

  public string Url

  {

  get { return this._url; }

  set { this._url = value; }

  }

  ///

 

  /// 标题

  ///

 

  public string Title

  {

  get { return this._title; }

  set { this._title = value; }

  }

  ///

 

  /// 描述

  ///

 

  public string Descript

  {

  get { return this._descript; }

  set { this._descript = value; }

  }

  }

  IDAL代码:

  /// 排序

  ///

  /// 表名

  /// 排序字段

  /// 表主键字段

  /// 表主键字段值

  /// 列表默认的排序方式,asc或desc

  /// 排序方向,up或down

  /// 条件

  ///

  int Order(string table,string colname,string keyid,int keyidvalue,string order,string orderDirection,string whe);

  SQLDAL代码:

  public int Order(string table,string colname,string keyid,int keyidvalue,string order,string orderDirection,string whe)

  {

  SqlParameter[] paras = {

  new SqlParameter("@tablename", table),

  new SqlParameter("@colname",colname),

  new SqlParameter("@keyid",keyid),

  new SqlParameter("@keyidvalue",keyidvalue),

  new SqlParameter("@order",order),

  new SqlParameter("@orderDirection",orderDirection),

  new SqlParameter("@where",whe)

  };

  return Convert.ToInt32( SqlHelper.ExecuteNonQuery(Configuration.ConnectionString, CommandType.StoredProcedure, "sp_BannerOrder", paras));

  BLL代码:

  public int Order(string table, string colname, string keyid, int keyidvalue, string order, string orderDirection, string whe)

  {

  return bner.Order(table, colname, keyid, keyidvalue, order, orderDirection, whe);

  }

  WEB:

  aspx代码:

分享:如何在ASP.NET中使用三层架构
学ASP.NET都知道它的最经典的架构是三层架构,也是目前应用得最广泛的一种架构.以前说起三层架构大家都知道MVC架构,这是html开发中用得比较多的,现在AJAX主要就是用这种架构。大家ASP.NET的三层是指数据访问层,业务逻辑层和表示层,而且都知道数据访问层是用来访问数据

共2页上一页12下一页
来源:模板无忧//所属分类:.Net教程/更新时间:2014-10-10
相关.Net教程