gpt4 book ai didi

使用本地数据库的 C# SQL 随机样本

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:52 25 4
gpt4 key购买 nike

我想知道如何使用 C# 从本地数据库中随机获取 n 个样本

到目前为止我做了什么。

"SELECT TOP "+n+" QUESTION,C1,C2,C3,C4,ANSWER FROM qPIPE WHERE CONTENT = 'Topic' ORDER BY RAND()"

"SELECT QUESTION,C1,C2,C3,C4,ANSWER FROM qPIPE WHERE CONTENT = 'Topic' ORDER BY RAND() LIMIT "+n+""

错误:附加信息:表达式中未定义函数“RAND”。

"SELECT TOP "+n+" QUESTION,C1,C2,C3,C4,ANSWER FROM qPIPE WHERE CONTENT = 'Topic' ORDER BY NEWID()"

附加信息:表达式中未定义函数“NEWID”。

我的连接字符串

ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0DataSource=|DataDirectory|\questionbank.accdb";

但是当我尝试用 MS SQL 查询它时

SELECT TOP n QUESTION, C1, C2, C3, C4, ANSWER FROM qPIPE WHERE CONTENT = 'Topic' ORDER BY NEWID()

它工作正常。从表格中获取 n 个题目匹配的问题。

我使用的是 MVS 2015、MSSMS 2017。正在使用 win 表单。

编辑:

using ORDER BY RND()

编辑:

connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "SELECT TOP 2 QUESTION,C1,C2,C3,C4,ANSWER FROM qPIPE WHERE CONTENT = 'Thermodynamics' ORDER BY RND()";
OleDbDataAdapter dAdap = new OleDbDataAdapter(command);
DataTable dTable = new DataTable();
dAdap.Fill(dTable);
dataGridView1.DataSource = dTable;
connection.Close();

最佳答案

在 SQL Server 中,您可以使用 NEWID() 函数:

SELECT TOP "+n+" QUESTION,C1,C2,C3,C4,ANSWER
FROM qPIPE
WHERE CONTENT = 'Topic'
ORDER BY NEWID();

在 MS Access 中,您可以使用 RND():

SELECT TOP "+n+" QUESTION,C1,C2,C3,C4,ANSWER
FROM qPIPE
WHERE CONTENT = 'Topic'
ORDER BY RND();

关于使用本地数据库的 C# SQL 随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46633569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com