【发布时间】:2020-11-03 11:21:15
【问题描述】:
我有一个名为“Reports”的数据库,我想打印最后一个“sReportNo”。
这是代码:
SQLiteCommand CommandText = new SQLiteCommand("SELECT * FROM Reports WHERE sReportNo = (SELECT MAX(sReportNo) FROM Reports)", conn);
SQLiteDataReader reader = commandText.ExecuteReader();
var lastReportNo = reader;
MessageBox.Show("Currently, there is " +lastReportNo+ " reports.");
它会打印“当前,有 System.Data.SQLiteDataReader 报告。”
【问题讨论】:
-
旁注:为什么不简单地
SELECT TOP 1 * FROM Reports ORDER BY sReportNo DESC? -
它告诉我“数据库架构已更改”-“接近“1”:语法错误”
-
我没抓到你,我该怎么办? :) 我写的和你写的一模一样
-
"Currently, there is " +lastReportNo+ " reports."将执行lastReportNo.ToString()导致观察到的输出。您需要将阅读器推进到第一个结果(如果有),然后调用其中一个Get...重载并输出结果。 -
如果您期望单值结果 - 考虑使用 ExecuteScalar 而不是 ExecuteReader & 然后需要读取。 docs.microsoft.com/en-us/dotnet/api/…