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