我的代码中有以下子例程,用于将新记录插入到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
我觉得你需要之前'tr.Commit调用'Dc.ExecuteNonQuery()'()' – user5226582
@ user5226582是的,谢谢你,当然...只是一些愚蠢的 – David