为什么用datagridview绑定access随机查询,记录每次都一样?

wu18sd1 2010-01-31 03:52:18
虚心向高手请教。。。
为什么用datagridview绑定access随机查询,记录每次都一样?
目的是随机从access中随机查询英语单词,但是无论怎么弄,数据还都是那些数据。即使是从新调试也是这些数据

id word translate

125 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();
}

}
...全文
121 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishuai818 2010-04-30
  • 打赏
  • 举报
回复
谢谢了 好东西
wu18sd1 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdfkfkd 的回复:]
试试下面的

里面的0.284324你最好每次在调用前用C#随机生成一个
你为什么每次生成的都一样,因为你的随机种子是相同的

SQL codeSELECTtop10*FROM wordOrderBy Rnd(rnd(-1*id*0.284324))
[/Quote]


测试效果不是很好。。。
后来用了SQL codeSELECTtop10*FROM wordOrderBy Rnd(-1*id*time())这句可以实现随机查询,不过有一个重大的问题。。那就是不能保证每条记录的读取几率均等。。。。
请问有没有什么办法解决?
maomao90 2010-01-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdfkfkd 的回复:]
试试下面的

里面的0.284324你最好每次在调用前用C#随机生成一个
你为什么每次生成的都一样,因为你的随机种子是相同的

SQL codeSELECTtop10*FROM wordOrderBy Rnd(rnd(-1*id*0.284324))
[/Quote]
特别 2010-01-31
  • 打赏
  • 举报
回复
试试下面的

里面的0.284324你最好每次在调用前用C#随机生成一个
你为什么每次生成的都一样,因为你的随机种子是相同的


SELECT top 10 * FROM word Order By Rnd(rnd(-1*id*0.284324))

111,101

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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