C#:SQL从SqlDataReader获取最后一行?

时间:2015-03-02 16:54:32

标签: c# mysql sql asp.net .net

我需要在表格列中对日期进行排序,并从阅读器中获取最后一行(即:最新日期)。我尝试了以下方法:

using (SqlConnection con = new SqlConnection(conString))
{
   SqlCommand cmd = new SqlCommand("Select * From ActivityTable 
                                             ORDER BY CONVERT(DATE, Date) ASC", con);
   con.Open();
   SqlDataReader rdr = cmd.ExecuteReader();

   //I need to skip reading all the rows UNTIL the last row. I only need the last row
   while (rdr.Read())
   {
     locationOfPrevious = rdr["Location"].ToString();
     nodeid_previous = rdr["NodeID"].ToString();

   }
   rdr.Close();
}

我认为查询是正确的,但我无法从查询结果中获取最后一行(即根据排序记录的最后日期)。你的建议是什么?谢谢大家:)

2 个答案:

答案 0 :(得分:4)

我建议通过desc排序并采取第一行 - 更有效率

答案 1 :(得分:0)

使用以下查询

Select Top 1 * From ActivityTable ORDER BY CONVERT(DATE, Date) DESC //SQL

您可以使用LIMIT关键字在MySQL

中生成相同的输出
Select * From ActivityTable ORDER BY CONVERT(DATE, Date) DESC LIMIT 0,1 //MYSQL