У меня есть следующая подпрограмма в моем коде для вставки новой записи в базу данных SQL Server. После прохождения через него код проходит через все это, появляется окно сообщения, но строка фактически не вставлена в базу данных. Я знаю, что он использует правильное соединение, поскольку я могу просматривать записи в связанной сетке, которые я вручную вставил с помощью SQL Server, а также мои запросы UPDATE
и DELETE
работают с использованием того же соединения, поэтому с моим кодом что-то не так, но я не могу выясните, что ... Кто-нибудь может мне помочь?Запрос INSERT выполняется, но не вставляется
Public Shared Function SaveNewIncident(ByVal clientName As String, dateStart As Date, dateEnd As Date, ByVal incidentProblem As String, ByVal timeStart As String, ByVal timeEnd As String,
ByVal incidentSolved As Boolean, ByVal incidentSolution As String, _con As OleDbConnection)
Dim tr As OleDbTransaction = Nothing
Try
tr = _Con.BeginTransaction()
Dim Dc As New OleDbCommand
Dc.Connection = _con
Dim ID As Integer
ID = "1"
Dc.CommandType = CommandType.Text
Dc.CommandText = "INSERT INTO dbo.tblIncidents VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)"
Dc.Transaction = tr
Dc.Parameters.Add("@supportID", OleDbType.Integer).Value = ID
Dc.Parameters.Add("@clientName", OleDbType.VarChar).Value = clientName
Dc.Parameters.Add("@dateStart", OleDbType.Date).Value = dateStart
Dc.Parameters.Add("@dateEnd", OleDbType.Date).Value = dateEnd
Dc.Parameters.Add("@incidentProblem", OleDbType.LongVarChar).Value = incidentProblem
Dc.Parameters.Add("@timeStart", OleDbType.VarChar).Value = timeStart
Dc.Parameters.Add("@timeEnd", OleDbType.VarChar).Value = timeEnd
Dc.Parameters.Add("@incidentSolved", OleDbType.Boolean).Value = incidentSolved
Dc.Parameters.Add("@incidentSolution", OleDbType.LongVarChar).Value = incidentSolution
tr.Commit()
MsgBox("Save successful")
Catch ex As Exception
mdInit.errorLog(ex.Message, ex.StackTrace)
MsgBox("Failed to save data, refer to error log")
tr.Rollback()
End Try
End Function
Я думаю, вам нужно вызвать 'Dc.ExecuteNonQuery()' 'Перед tr.Commit()' – user5226582
@ user5226582 Да, спасибо, конечно ... Просто что-то глупое – David