从数据库中获取一个随机值 [英] Getting a single random value from a database

查看:220
本文介绍了从数据库中获取一个随机值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检索数据的基础,但以随机方式单一的记录?你提出的任何帮助将是非常美联社preciated。谢谢!

这是我迄今所做

 保护无效的button1_Click(对象发件人,EventArgs的发送)
{
    字符串的ConnectionString = @供应商= Microsoft.ACE.OLEDB.12.0;数据源= C:\\用户\\ Ahmed'susopriore'\\文档\\的Visual Studio 2013 \\项目\\ WebApplication11 \\ WebApplication11 \\ Questions.accdb
    OleDbConnection的连接=新的OleDbConnection(的ConnectionString);
    随机RND =新的随机();
    rnd.Next();
    字符串更改为MyQuery =SELECT * FROM问题ORDER BY RND();
    OleDbCommand的命令=新的OleDbCommand(更改为MyQuery,连接);
    尝试
    {
        connection.Open();
        OleDbDataReader读者= Command.ExecuteReader却();
        而(reader.Read())
        {
        ListBox1.Items.Add(读卡器[编号] +);
        }
    }
    赶上(异常前)
    {
        Label1.Text =错误!+前;
    }
    最后
    {
        connection.close()时;
    }
}


解决方案

如果问题主键是 questionId
从更改code:

 字符串更改为MyQuery =SELECT * FROM问题ORDER BY RND();

 字符串更改为MyQuery =SELECT TOP 1 * FROM问题ORDER BY RND(questionID);

或者

 字符串更改为MyQuery =SELECT TOP 1 * FROM问题ORDER BY的Rnd( - (100000 * questionID)*时间())

How do i retrieve a single record from a data base but in a random manner? Any help you put forward will be highly appreciated. Thanks!

This is what i have done so far

protected void Button1_Click(object sender, EventArgs e)
{
    string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Ahmed'susopriore'\Documents\Visual Studio 2013\Projects\WebApplication11\WebApplication11\Questions.accdb";
    OleDbConnection connection = new OleDbConnection(ConnectionString);
    Random rnd = new Random();
    rnd.Next();
    string myQuery = "SELECT * FROM Questions ORDER BY rnd()";
    OleDbCommand command = new OleDbCommand(myQuery, connection);
    try
    {
        connection.Open();
        OleDbDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
        ListBox1.Items.Add(reader["Number"]+"" );
        }
    }
    catch (Exception ex)
    {
        Label1.Text = "ERROR!"+ex;
    }
    finally
    {
        connection.Close();
    }
}

解决方案

If primary key of questions is questionId Change your code from:

string myQuery = "SELECT * FROM Questions ORDER BY rnd()";

to:

string myQuery = "SELECT Top 1 * FROM Questions ORDER BY rnd(questionID)";

Or:

string myQuery = "SELECT Top 1 * FROM Questions ORDER BY Rnd(-(100000*questionID)*Time())

这篇关于从数据库中获取一个随机值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆