c# - 从ms访问数据库中随机生成数据

时间:2013-10-15 06:32:37

标签: c# database ms-access-2007 oledb

我正在尝试创建一个C#程序,通过单击按钮从我的ms访问数据库中选择一个随机数据。错误说明我创建的OleDbDataReader中的Data type mismatch in criteria expression. ..

这就是我目前所取得的成就。答案将受到高度赞赏。

    {

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

2 个答案:

答案 0 :(得分:0)

您似乎试图通过randome值来记录您的记录,我认为这没有任何意义。

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

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

答案 1 :(得分:0)

How to get random record from MS Access database

检查评论。在您的情况下,似乎正确的语法是

ORDER BY Rnd(-(10000000*Funny)*Time())