使用
select * from abc order by rnd(id)
可以在access本地查询中得到随即的纪录
但是在asp.net中使用oledb每次得到的数据都是相同的顺序
原来以为是output缓冲的问题
但是把duration设为1页不能解决问题
向高人求解

解决方案 »

  1.   

    你这个问题所要达到的目的是什么呢?
    为什么要得到随机的记录呢?有什么用处呢?
    请说明!
    还有就是如果想得到随机的记录的话,你上面那条sql语句能实现吗?
    如果是在access里没有问题的话,只是在asp.net里不行的话,你可以单步跟踪调试一下即可找到原因的。
      

  2.   

    目的就是从表中随机取得纪录我的sql语句能够在access的视图中获得随机纪录但是在.net页面中只能得到一次随机的结果后面每次的结果都和以前一样这个如何调试跟踪呢?
      

  3.   

    你可以先写个随机数,
    (c#)
    Random r=new Random();
    Int i=r.Next(取植范围);
    然后
    查找数据库
    select * from abc where id='i';
      

  4.   

    我就是自己写了一个随机函数解决了问题的但是我还是想知道造成这种现象的原因是什么以及如何直接使用数据库解决问题truelove12说的Randomize怎么搞呢?
      

  5.   

    用rnd(id),是指用一个特定种子生成随机数,指要ID不变生成的随机数也不变
    Random r=new Random();则是每个产生不同的随机数
      

  6.   

    那为什么我用access的查询每次得到的查询结果可以都是不同的呢?
      

  7.   

    我用是SQL Server测试过
    select * from abc order by rand(id)
    id不同生成的随机数也不同,但是相同的ID随机数是相同的,不管执行几次。select * from abc order by rand()
    则每次执行都会产生不同的随机数,不过一次查询产生的随机数相同。
      

  8.   

    已经解决
    1、先建一个View:SELECT     RAND() AS re
    2、建一个Function:
    create function usp_GetRand
    (
    )
    RETURNS float
    AS
    BEGIN
    DECLARE @Result float
    SELECT @Result = re from v_rand
    RETURN @Result
    END
    3、select * from abc order by usp_GetRand()
      

  9.   

    Sql数据库和Access还是有差别的.......
    Access能用存储过程么?..............
    看来还是没有理解我的意思其实用自己写随机函数的方法我早就解决问题了但是现在的问题是
    我在Access里面建立一个表
    填入一些数据(比如可以按顺序在id一列中填入1,2,3,4......)
    然后新建一个查询
    (比如select * from [your_table_name] order by rnd(id))这个时候每次查询出来的结果都是不同的
    =============================
    注意每次都不同
    =============================然后在asp.net中写oledb对象连接数据库
    并且调用数据sqlcommand使用同样的查询语句
    (比如上面的那句)
    每次得到的都相同
    =============================
    这里每次都相同
    =============================
    甚至我调用那个查询的数据
    结果得到的数据也是每次都相同的
    所以我想知道的就是产生这种现象的原因是什么
    是不是数据连接是存在某种缓冲机制
    还请大家亲自尝试后再研究这个问题
      

  10.   

    上面写错一地方
    sqlcommand-->OleDbCommand
      

  11.   

    我试了也是这样,不知道是不是access有缓存的?