Возврат последней вставленной записи с помощью ADO.NET
У меня есть следующий код
public void addSeesion(int userid)
{
строка qry = "вставить в Session_Info(Session_Id,User_Id)значения(@SessionId,@UserId)";
MySqlCommand cmd = new MySqlCommand(qry, Connection.Get());
cmd.параметры.AddWithValue("@SessionId", сессия);
cmd.параметры.AddWithValue("@UserId", userid);
УМК.Метод executenonquery();
}
В таблице есть 3 столбца, включая первичный ключ. Теперь я хочу получить последнюю вставленную запись после этого, не делая нового запроса. cmd.ExecuteScalar и cmd.LastInsertedId дает первичный ключ.
Но мне нужна вся строка или значение Session_Id. Действительно ли это возможно или есть какой-то другой способ???
Что я уже пробовал:
cmd.ExecuteScalar и cmd.LastInsertedId дает первичный ключ.
Но мне нужна вся запись.
ZurdoDev
Чего тебе не хватает? Вы просто вставили запись, так что у вас есть все значения, верно?
Member 12693361
Да, но я должен убедиться, что запись должным образом обновлена.
ZurdoDev
До тех пор, пока вы не получите ошибку и ваш sql будет правильным, тогда он работал. Я не совсем понимаю, что вы ищете.
F-ES Sitecore
Вам нужно будет сделать дополнительный запрос, обойти его невозможно. Однако, как сказал Райан, если ни одно из полей не вычисляется каким-либо образом, то у вас все равно есть все данные.
Member 12693361
конечно, у меня есть ценности.Но как я могу твердо верить, что запись обновляется с точными значениями??
F-ES Sitecore
Потому что во всем мире SQL, вероятно, обновляет миллиард бит информации каждую секунду, и если бы был шанс, что данные на самом деле не были обновлены, кто-то сообщил бы об этом как об ошибке? :)
Karthik_Mahalingam
sql или mysql ?
Member 12693361
в MySQL
Karthik_Mahalingam
попробовать это
Выберите LAST_INSERT_ID() из Session_Info
agolddog
Я думаю, что должен пойти с Зурдодевым и остальными. Ваше взаимодействие приведет только к одному из двух: успеху или исключению.
Если нет исключений, у вас есть все ценности, с которыми вы пришли. Используйте одну из вещей, которые вы уже обнаружили, чтобы получить новый идентификатор, и создайте некоторый объект для возврата (вместо void), построив этот объект из входных данных + новый идентификатор.
Если есть исключение, вы хотите справиться с ним любым подходящим для этого уровня вашей системы способом (я бы предположил, что просто позвольте ему всплыть, если только у вас нет ведения журнала на этом уровне).
Одна незначительная вещь заключается в том, что ваше имя метода написано с ошибкой: addSession.