C#:如何从数据库的最后一行获取数据?我在 visual studio 2017 年使用

C#: How to get data from the last row in database? I'm using in visual studio 2017

需要 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";

这是我在 Whosebug 中的第一个问题。我希望有人能帮助我解决这个问题。

你可以使用 orm。事情会变得简单。

在下面的片段中考虑你的问题可以帮助你。

-- 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 服务器以获取 table 中的最后一个值:

SELECT TOP(1) MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC

但是,由于您提到了 MySQL 标记(暗示您使用的是 MySQL 而不是 SQL 服务器),因此您需要在 [= 之后使用 LIMIT n 14=] 而不是,其中 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(例如 Entity Framework)和 MySQL Connector .NET library 以启用 LINQ 功能。

类似问题:

How to select the last record from MySQL table using SQL syntax

Select last row in MySQL