• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Dotnet之旅

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

对栏目的排序

最近系统发现栏目排序的bug,研究一下发现开发者考虑过少,给1个排序ID,就要实现添加,删除,排序移动.
在理想情况,排序id连续且不重复,工作正常.但排序ID不连续和重复将导致排序功能错误.
由于时间紧,我在绑定grid之前,将datatable中的排序id的值与循环索引i进行比较,如果不相等则进行update排序id=i;
然后重新select,此时可保证后面操作正常.

 1             DataTable dt= new DataTable();
 2             string sql = "select * from GS_Page  ORDER BY RankId ";
 3             dt = DataAccess.ExecuteDataset(ConnStrManage.GetConnStr,CommandType.Text,sql).Tables[0];
 4             string sqlup ="";
 5             for (int i=0;i<dt.Rows.Count;i++)
 6             {
 7                 if (dt.Rows[i]["RankId"].ToString()!=i.ToString())
 8                 {
 9                     sqlup += "update GS_Page set RankId = "+i+" where ID ="+dt.Rows[i]["ID"]+";";
10                 }
11             }
12             if (sqlup!="")
13             {
14                 DataAccess.ExecuteNonQuery(ConnStrManage.GetConnStr ,CommandType.Text,sqlup);
15                 dt = null;
16                 dt = DataAccess.ExecuteDataset(ConnStrManage.GetConnStr,CommandType.Text,sql).Tables[0];
17             }

 
当然这样做难免性能低下,如果时间允许,我想页面的排序移动可以用脚本实现(prortotype.js辅助),而调整完毕,点保存,才进行更新,这应该才是比较好的做法吧

posted on 2007-02-08 20:50  浮游  阅读(206)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3