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

Posted

技术标签:

【中文标题】c# - 从 ms access 数据库中随机生成数据【英文标题】:c# - Random generating of data from ms access database 【发布时间】:2013-10-15 06:32:36 【问题描述】:

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

这是我目前实现的。答案将不胜感激。

    

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

【问题讨论】:

【参考方案1】:

您似乎试图按随机值对记录进行排序,我认为这没有任何意义。

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

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

【讨论】:

【参考方案2】:

How to get random record from MS Access database

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

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

【讨论】:

以上是关于c# - 从 ms access 数据库中随机生成数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 从 MS Access DB 中检索表关系

C# Ms-access 从数据库中获取详细信息

不通过 C# 从 ms access 数据库返回任何数据,如果我在 ms access 上运行相同的查询,它将获取数据

如何从 C# 调用 MS Access 数据库宏

通过单击按钮使用 C# 从 MS Access 数据库中删除数据

如何将日期从 C# 存储到 MS-Access 以及如何检索它?