虚心向高手请教
为什么用datagridview绑定access随机查询,记录每次都一样?
目的是随机从access中随机查询英语单词,但是无论怎么弄,数据还都是那些数据。即使是从新调试也是这些数据id       word                            translate125 FireWire port port             火线端口
350 virus                          病毒
413 application scope                应用程序作用域
421 authentication                   身份验证
7 Application software                应用软件
493 encapsulate                   封装
257 Programming control lanugage 程序控制语言
44 Combination key                   结合键
318 subscription address          预定地址
461 control                            控件
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        string strConStr = "Provider=Microsoft.Jet.OlEDB.4.0;Data source=|DataDirectory|\\db.mdb";                                                            //连接数据库的字符串
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“dbDataSet.word”中。您可以根据需要移动或移除它。
          //  this.wordTableAdapter.Fill(this.dbDataSet.word);
            binder();
        }        private void button1_Click(object sender, EventArgs e)
        {
            binder();
            
        }
        public void binder()
        {
            OleDbConnection myConn = new OleDbConnection(strConStr);   //OleDbConnection对象连
            //用 OleDbDataAdapter 得到一个数据集
            string strCom = " SELECT top 10 * FROM word Order By Rnd(id) ";  //检索的数据          
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
            //创建一个 DataSet
            DataSet myDataSet = new DataSet(); //DataSet 是 ADO.NET 结构的主要组件,它是从数据
            //把Dataset绑定person数据表
            myCommand.Fill(myDataSet, "word");
            this.dataGridView1.DataSource = myDataSet.Tables[0].DefaultView;
            //关闭此OleDbConnection myConn.Close()
            myConn.Close();  //myConn.Dispose();
        }
        
    }

解决方案 »

  1.   

    试试下面的里面的0.284324你最好每次在调用前用C#随机生成一个
    你为什么每次生成的都一样,因为你的随机种子是相同的
    SELECT top 10 * FROM word Order By Rnd(rnd(-1*id*0.284324))
      

  2.   

    测试效果不是很好
    后来用了SQL codeSELECTtop10*FROM wordOrderBy Rnd(-1*id*time())这句可以实现随机查询,不过有一个重大的问题。。那就是不能保证每条记录的读取几率均等。
    请问有没有什么办法解决?