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