虚心向高手请教
为什么用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();
}
}
为什么用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();
}
}
你为什么每次生成的都一样,因为你的随机种子是相同的
SELECT top 10 * FROM word Order By Rnd(rnd(-1*id*0.284324))
后来用了SQL codeSELECTtop10*FROM wordOrderBy Rnd(-1*id*time())这句可以实现随机查询,不过有一个重大的问题。。那就是不能保证每条记录的读取几率均等。
请问有没有什么办法解决?