我在检索数据表中最后一个插入行的值时遇到问题。我有一个登录表单,并且将在表中插入的值包含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
提前致谢
答案 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);