Как получить значения из последней строки в 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 7

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 ;

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

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);