0

我被困在这个问题上,似乎无法解决它,我的代码在下面运行,如果有一条记录更新,则 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

谢谢你的帮助

4

1 回答 1

1

我使用了您的确切代码,它似乎有效。也许我的连接字符串有点不同,但它在我的测试中有效。

我的连接字符串: Dim strAccessConn As String = "Provider= Microsoft.ACE.OLEDB.12.0;Data Source=c:\555\Test For StackOverflow.accdb"

于 2013-11-10T17:54:41.467 回答