2017-07-13 37 views
0

在C#中需要帮助(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";

这是我在这里首先#1的问题。我希望有人能帮助我。

+0

你在谈论最后那个来到这个记录? –

+0

'SELECT * FROM ncslbpHighWay ORDER BY COLUMN DESC LIMIT 1'如何? –

+0

如果你可以显示表格结构,它会更容易回答。 –

回答

0

您指定的查询工作的SQL Server在表中获取最后一个值:

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

但是因为你提的MySQL的标签(这意味着你使用的不是SQL服务器的MySQL),你需要使用LIMIT nORDER BY代替,其中n是返回结果的单结果的数量,即1:如果您使用MySql.Data.MySqlClient.MySqlConnection而不是使用标准System.Data.SqlClient.SqlConnection

SELECT MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC LIMIT 1 

-- or using offset: 
SELECT MessageNumber FROM ncslbpHighWay ORDER BY [ColumnName] DESC LIMIT 0, 1 

,你可以WR ite数据检索是这样的:

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 library在管理数据库查询时启用LINQ功能。

类似的问题:

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

Select last row in MySQL

+0

谢谢!这行得通。 –

0

你可以使用orm。事情会变得容易。

0

考虑到你的问题,下面的代码可以帮助你。

-- Method 01-- 
SELECT * FROM TestData where ID =(Select Max(ID) from TestData) 

-- Method 02-- 
SELECT top 1 * FROM TestData order by ID Desc; 

这里我将ID列视为Auto Increment。下面

相关问题