在C#中需要帮助(Visual Studio 2017(
我想从最后一行或最后输入的数据中获取数据库中的数据。 我的代码在这里。
String query = "SELECT TOP(1) MessageNumber FROM ncslbpHighWay";
SqlCommand SDA = new SqlCommand(query, AR);
SqlDataReader data = SDA.ExecuteReader();
if (data.Read())
{
textBox2.Text = data.GetValue(0).ToString();
}
AR.Close();
我已经得到了数据,但仅来自顶部的特定列。我不知道如何获得底部值。 我也尝试了DESC
但它不起作用。
String query = "SELECT TOP(1) MessageNumber FROM ncslbpHighWay ORDER BY COLUMN DESC";
这是我在Stackoverflow中的第一个问题。我希望有人能在这方面帮助我。
考虑下面的问题片段可以为您提供帮助。
-- Method 01--
SELECT * FROM TestData where ID =(Select Max(ID) from TestData)
-- Method 02--
SELECT top 1 * FROM TestData order by ID Desc;
在这里,我将ID列视为自动增量。
下面指定的查询适用于 SQL Server,用于获取表中的最后一个值:
SELECT TOP(1) MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC
但是,由于您提到了MySQL标签(暗示您使用的是MySQL而不是SQL Server(,因此您需要在ORDER BY
之后使用LIMIT n
,其中n是返回结果的数量,即单个结果为1:
SELECT MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC LIMIT 1
-- or using offset:
SELECT MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC LIMIT 0, 1
如果您使用的是MySql.Data.MySqlClient.MySqlConnection
而不是使用标准System.Data.SqlClient.SqlConnection
,则可以像这样编写数据检索:
using (MySqlConnection AR = new MySqlConnection())
{
AR.Open();
String query = "SELECT MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC LIMIT 1";
using (MySqlCommand SDA = new MySqlCommand(query, AR))
{
MySqlDataReader data = SDA.ExecuteReader();
if (data.Read())
{
textBox2.Text = data.GetValue(0).ToString();
}
}
AR.Close();
}
注意:我建议您使用ORM(例如实体框架(和MySQL Connector .NET库,以便在管理数据库查询时启用LINQ功能。
类似问题:
如何使用 SQL 语法从 MySQL 表中选择最后一条记录
在 MySQL 中选择最后一行
你可以使用orm。事情会变得容易。