2013-10-15 48 views
0

我想做一个C#程序,将通过单击按钮从我的ms访问数据库中选择一个随机数据..错误说,从我创建的OleDbDataReader Data type mismatch in criteria expression.c# - 从ms访问数据库随机生成数据

这就是我目前实现的目标。将不胜感激。

{ 

     OleDbConnection connection = new OleDbConnection(); 

     connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\miguel\Documents\QuotesGenFunny.accdb; 
     Persist Security Info=False;"; 

     connection.Open(); 

     OleDbCommand command = new OleDbCommand(); 

     command.Connection = connection; 
     command.CommandText = "SELECT TOP 1 * FROM Funny ORDER BY Rnd(-10000000*TimeValue(Now())*[Author])"; 

     OleDbDataReader reader = command.ExecuteReader(); 

     while (reader.Read()) 
     { 
      listBox1.Items.Add(reader["Author"].ToString()); 
     } 

     connection.Close(); 
    } 

回答

0

你似乎试图用randome值来排序你的记录,我认为这没有任何意义。

也许跳过随机数的记录会更容易(只要确保它小于记录总数),然后再取下一条记录。

如果您的记录的ID是一个数字增加1,您可能可以通过使用C#生成一个介于0和总数nr之间的随机数来选择一个随机记录。