Я делаю проект, связанный с Microsoft SQLServer, используемый для ввода, удаления, редактирования данных о клиентах и заказах. Полная система работает, однако мне было рекомендовано использовать транзакции, а не регулярные операторы SQL для добавления/удаления/редактирования данных и т. Д.Оператор транзакции SQL в vb.net
Беда в том, что я не использовал их до и после моих исследований за последние Несколько часов, я не могу понять, как начать их.
Может кто-нибудь посоветует мне, как превратить следующий код в транзакцию?
Public Shared Function SaveNewPerson(ByVal firstName As String, lastName As String, ByVal age As Integer, ByVal postcode As String, m_cn As OleDbConnection)
Dim Dc As New OleDbCommand
Dc.Connection = m_cn
m_cn.Open()
Dc.CommandText = "INSERT INTO tblPerson([firstName], [lastName], [age], [postcode]) VALUES('" & firstName & "', '" & lastName & "', '" & age & "', '" & postcode & "')"
Dc.ExecuteNonQuery()
Dim personID As Integer
Dc.CommandText = "SELECT @@IDENTITY"
Dc.CommandType = CommandType.Text
personID = CType(Dc.ExecuteScalar(), Integer)
m_cn.Close()
End Function
Прежде чем делать что-нибудь еще нужно, чтобы прочитать о, понять и начать использовать параметризированный код queries.Your широко открыт для SQL Вы также должны посмотреть на использование SCOPE_IDENTITY вместо @@ Identity. Надеемся, что вам посоветовали использовать параметризованные запросы. НЕ выполнять вставки и т. Д. –
Вы также должны быть осторожны с функциями 'Shared', такими как' SaveNewPerson'. Если вы используете общие переменные, это может повредить систему многопоточности. –
Еще одна рекомендация - хранить дату рождения вместо возраста. Возраст - это рассчитанное значение, основанное на текущем реальном времени, которое не хранится как факт в таблице. –