我遇到了这个问题并且似乎无法修复它,我的代码在下面运行并且如果一条记录更新则checkinsert返回1,如果没有更新则返回0,问题在Access中,表格列未更新。
我无法找到它为什么不起作用,所以我希望一双新眼睛可以发现问题。
如果我在Access中运行更新视图,则可以正常工作。
UPDATE tblStudentNameAndScore
SET tblStudentNameAndScore.QuizCount = QuizCount+1,
tblStudentNameAndScore.TimeLastQuestionAsked = Now()
WHERE tblStudentNameAndScore.StudentID=[?];
VB.Net
Public Function UpdateStudentScoreIfAnswerCorrect(ByVal studentId As String) As String
Try
Dim strAccessConn As String = _appConfigDbConn
Dim cn As OleDbConnection = New OleDbConnection(strAccessConn)
cn.Open()
Dim da As New OleDbCommand("qryUpdateStudentScore", cn)
da.CommandType = CommandType.StoredProcedure
'da.Parameters.AddWithValue("@StudentID", studentId)
da.Parameters.Add("@StudentID", OleDbType.VarChar).Value = studentId
Dim checkinsert As New Integer
checkinsert = da.ExecuteNonQuery()
If checkinsert > 0 Then
Return "Success"
End If
cn.Close()
cn.Dispose()
Return "Fail"
Catch ex As Exception
Throw New ApplicationException(ex.InnerException.Message.ToString())
End Try
End Function
我正在使用Access 2010和VB.NET Express
感谢您的帮助
答案 0 :(得分:1)
我使用了你的确切代码,它似乎工作。也许我的连接字符串有点不同,但它在我的测试中起作用。
我的连接字符串: Dim strAccessConn As String =“Provider = Microsoft.ACE.OLEDB.12.0; Data Source = c:\ 555 \ Test For StackOverflow.accdb”