数据绑定时随机排列

net_grope 2013-02-05 10:57:20
acess数据库,当数据绑定到reapter时,或者查询出来的数据,数据的顺序随机排列
比如第一次绑定后
a
b
c
d
第二次绑定后可能为
d
a
c
b
等随机排列

...全文
576 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2013-02-07
  • 打赏
  • 举报
回复
就是创建一个跟原DataTable结构相同的内存数据表,然后产生一个序列,序列元素值为原表中所有行的行号(从0开始,到dt.Rows.Count-1)。对这个序列随机排序,得到一个次序打乱的新序列。最后根据新序列里存放的行号(已被随机乱序)从原表中复制相应行到新表中。
net_grope 2013-02-07
  • 打赏
  • 举报
回复
问题解决了,但是还是不明白怎么回事,只是照抄
dalmeeme 2013-02-07
  • 打赏
  • 举报
回复
给你写段示例代码:
		DataTable dt = new DataTable();
		dt.Columns.Add("ID");
		dt.Columns.Add("Name");
		dt.Rows.Add("a", "张三");
		dt.Rows.Add("b", "李四");
		dt.Rows.Add("c", "王五");
		dt.Rows.Add("d", "赵六");
		dt.Rows.Add("e", "刘七");
		DataTable resultDt = dt.Clone();
		Enumerable.Range(0, dt.Rows.Count).OrderBy(x => Guid.NewGuid()).ToList().ForEach(x => resultDt.ImportRow(dt.Rows[x]));
		GridView1.DataSource = resultDt;
		GridView1.DataBind();
每次运行都会有不同结果。
dalmeeme 2013-02-07
  • 打赏
  • 举报
回复
很简单啊,照常select出Fill到DataTable里,再对DataTable随机排序就行了。
net_grope 2013-02-07
  • 打赏
  • 举报
回复
那个大哥给个解决办法,实在是没搞定,谢谢
net_grope 2013-02-06
  • 打赏
  • 举报
回复
引用
http://access911.net/fixhtm/77FAB31E1BDC.htm

  Random rdm = new Random();
            int r = rdm.Next();
            Repeater1.DataSource = SqlHelper.ExecuteDataTable("select  * from Words where zongclassID=@zongclassID order by Rnd("+r+")"
                , new OleDbParameter("@zongclassID", zongclass));
            Repeater1.DataBind(); 

请教下,为什么我这样生成的列表的顺序总是不变的,r为随机数,把这个随机数种子给了rnd()函数了啊
net_grope 2013-02-06
  • 打赏
  • 举报
回复
是随机排序而不是固定排序
kengbi5173 2013-02-06
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390366410 晒一晒 5173 技术部 赛马 薪资制度
  • 打赏
  • 举报
回复
你还是读出来用C#程序排序吧
net_grope 2013-02-06
  • 打赏
  • 举报
回复
沉了,大哥大姐们帮忙啊
goodsoft 2013-02-05
  • 打赏
  • 举报
回复
看的不是很明白,你是想让Repeater绑定每次都按相同的顺序?那可以把DataSource排好序再绑定了
夜色镇歌 2013-02-05
  • 打赏
  • 举报
回复

SELECT TOP n * FROM tanblename ORDER BY NEWID() 

62,061

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧