从数据库捕获第二个条目

本文关键字:第二个 数据库 | 更新日期: 2023-09-27 17:49:39

我是一个编程新手,一直在用c#查询数据库。

我试图使用下面的代码从数据库中的第二个条目返回一个日期和一个Int32:

OleDbCommand com101 = new OleDbCommand("SELECT TOP 2 [Flight_Date], [No_Launches] FROM Flights WHERE [Claimed_By_ID] = ? ORDER BY [Flight_Date] DESC LIMIT 1,1", Program.DB_CONNECTION);
com101.Parameters.Add(new OleDbParameter("", 451));
OleDbDataReader dr101 = com101.ExecuteReader();

当我运行代码时,我得到一个错误,说Syntax error in ORDER BY clause.有问题

有人能指出我错过了什么吗?

欢呼

从数据库捕获第二个条目

这是您的查询:

SELECT TOP 2 [Flight_Date], [No_Launches]
FROM Flights
WHERE [Claimed_By_ID] = ?
ORDER BY [Flight_Date] DESC
LIMIT 1,1;

您需要决定使用哪个数据库。有的支持TOP;部分支持LIMIT。基于你的错误和使用方括号,我猜你正在使用SQL Server/Sybase,应该删除LIMIT子句:

SELECT TOP 2 [Flight_Date], [No_Launches]
FROM Flights
WHERE [Claimed_By_ID] = ?
ORDER BY [Flight_Date] DESC;

如果这是真的,你应该把问题的标签从"mysql"改为"sql-server"。

编辑:

要获得第二个条目,我认为您可以使用子查询:

SELECT TOP 1 *
FROM (SELECT TOP 2 [Flight_Date], [No_Launches]
      FROM Flights
      WHERE [Claimed_By_ID] = ?
      ORDER BY [Flight_Date] DESC
     ) as t
ORDER BY Flight_Date ASC