如何从DataTable的最后一行检索值?

时间:2013-08-30 08:51:32

标签: c# asp.net sql datatable datarow

我在检索数据表中最后一个插入行的值时遇到问题。我有一个登录表单,并且将在表中插入的值包含ID(int,自动递增值),userID(int),logintime(smalldatetime)和logouttime(smalldatetime)。用于登录按钮内部的代码,因此插入除退出时间之外的所有值

DateTime t1 = DateTime.Now;
objbal2.insertLoginTime(s, t1);

并在注销按钮中我正在更新表,所以我必须检索最后一行的值。我正在参考ID值和userID更新表。 我可以使用此查询获取值吗?但我无法弄清楚如何?

SELECT COLUMN FROM TABLE ORDER BY COLUMN DESC

提前致谢

4 个答案:

答案 0 :(得分:28)

如果你必须读取最后一行的值,那么

DataRow lastRow = yourTable.Rows[yourTable.Rows.Count-1];

将返回最后一行。你可以从中读取数值。

我的第二个猜测是,通过数据表,你指的是sql server中的表。

然后通过小修改你的查询也很好。

SELECT TOP 1 COLUMN FROM TABLE ORDER BY COLUMN DESC

答案 1 :(得分:6)

var dt = new DataTable();
dt.AsEnumerable().Last();

dt.AsEnumerable()会返回IEnumerable<DataRow>

答案 2 :(得分:1)

您可以从会话中获取值,然后根据您的更改

更新数据库
DateTime t2 = DateTime.Now;

DataRow Row = Mylagin_dataTable.Rows.Count-1

Row[0]["LogoutTime"] = t2 ;

如果会话中的ID ,则使用以下

DateTime t2 = DateTime.Now;

DataRow Row = Mylagin_dataTable.Select("LoginID='"+ HttpContext.Current.Session["loginID"] + "'");

Row[0]["LogoutTime"] = t2 ;

答案 3 :(得分:0)

在Application Exit事件上执行以下查询,这将完成您的工作

string _query = string.Format("update top 1 SessionTable set LogOutTime = {0} where UserID = {1} order by ID desc", DateTime.Now, UserID);

相关问题