14

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

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

在注销按钮中我正在更新表格,所以我必须检索最后一行的值。我正在参考 ID 值和用户 ID 更新表。我可以使用此查询获取值吗?但我不知道怎么做?

SELECT COLUMN FROM TABLE ORDER BY COLUMN DESC

提前致谢

4

4 回答 4

37

如果您必须从最后一行读取值,那么

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

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

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

然后稍作修改,您的查询也很好。

SELECT TOP 1 COLUMN FROM TABLE ORDER BY COLUMN DESC
于 2013-08-30T08:57:01.507 回答
9
var dt = new DataTable();
dt.AsEnumerable().Last();

dt.AsEnumerable()返回一个IEnumerable<DataRow>

于 2013-08-30T08:57:19.747 回答
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 ;
于 2013-08-30T09:31:05.457 回答
0

对应用程序退出事件执行以下查询,这将完成您的工作

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

于 2013-08-30T09:20:27.357 回答