即使VB.Net中的返回值返回1,Access中的视图也不会更新记录

时间:2013-11-10 17:17:44

标签: vb.net ms-access

我遇到了这个问题并且似乎无法修复它,我的代码在下面运行并且如果一条记录更新则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

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

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

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