Как получить значения из последней строки в DataTable?

у меня возникли проблемы с получением значений из последней вставленной строки в таблице данных. У меня есть форма входа в систему, и значения будут вставлены в таблицу, имеет ID (int,автоматически увеличенное значение), userID (int), logintime(smalldatetime) и logouttime (smalldatetime). Код, который используется внутри кнопки входа в систему, таким образом, вставляет все значения, кроме времени выхода

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

и в кнопке выхода из системы я обновляю таблицу, поэтому я должен получить последние значения строки. Я обновляю таблицу со ссылкой на значение ID и идентификатор пользователя. Можно ли использовать этот запрос для получения значений? Но я не могу понять, как?

SELECT COLUMN FROM TABLE ORDER BY COLUMN DESC

спасибо заранее

4 ответов


Если вам нужно прочитать значения из последней строки, то

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

вернет вам последнюю строку. и вы можете прочитать значения из него.

мое второе предположение заключается в том, что по datatable вы ссылаетесь на таблицу в sql server.

тогда с небольшой модификацией ваш запрос также в порядке.

SELECT TOP 1 COLUMN FROM TABLE ORDER BY COLUMN DESC

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

dt.AsEnumerable() возвращает IEnumerable<DataRow>


Вы можете получить значение из своего сеанса, а затем обновить базу данных в соответствии с вашими изменениями

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 ;

выполнить следующий запрос на событие выхода из приложения, это сделает вашу работу

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