我在 ASP.NET Core 中尝试从我的小型数据库中获取数据。我想从我的表中选择 2 个随机行,但我无法让它工作。
我的数据库表:
我想出了错误,因为我SqlCommand
的不正确,但我不知道如何使它正确。
我的 DAL:
public IEnumerable<IKarakter> GetSortedKarakters()
{
using (SqlConnection connection = GetConnection())
{
connection.Open();
var command = new SqlCommand("SELECT * FROM Karakter ORDER BY RAND() LIMIT 2;", connection);
var reader = command.ExecuteReader();
var sortedKarakters = new List<IKarakter>();
while (reader.Read())
{
var karakter = new KarakterDTO
{
KarakterId = (int)reader["KarakterId"],
KarakterSoort = reader["KarakterSoort"]?.ToString(),
KarakterNaam = reader["KarakterNaam"]?.ToString()
};
sortedKarakters.Add(karakter);
}
return sortedKarakters;
}
}
我尝试过的查询:
SELECT * FROM Karatker ORDER BY RAND() LIMIT 10;
SELECT * FROM Karakter ORDER BY RAND() TOP 2;
SELECT * FROM Karakter TOP 2;
SELECT * FROM Karakter Limit 2;
SELECT TOP 2 * FROM Karakter ODER BY RAND();
SELECT TOP 2 FROM Karakter ODER BY RAND();
除了关键字之外,上述所有查询都会引发相同的错误。
任何人都可以帮忙吗?
编辑:当我尝试这个查询时:
SELECT TOP 2 *
FROM dbo.Karakter;
它显示了数据库的前 2 条记录,这证明错误不是其他层的问题,唯一的问题是查询本身。