【发布时间】:2013-11-30 15:38:38
【问题描述】:
如何以随机方式从数据库中检索单个记录?您提出的任何帮助将不胜感激。谢谢!
这就是我到目前为止所做的
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();
}
}
【问题讨论】:
-
您现有的代码有什么问题?你得到一个错误,还是没有给出预期的结果?它在做什么你不希望它做?
-
我现在拥有的现有代码显示列中的所有项目并以相反的顺序执行而不是随机执行
-
仅仅因为它以您识别的顺序返回并不意味着它不是随机的。如果不指定 order by 子句,则无法保证来自 sql 数据库的顺序。
-
没有错误。我的目标是从数据库中获取单个随机项,而不是整个列。