【发布时间】:2017-10-08 16:47:00
【问题描述】:
我想知道如何使用 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。正在制作一个获胜表格。
编辑:
编辑:
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 明确指出您连接到 Access
questionbank.accdb?
标签: c# sql sql-server visual-studio ms-access