문제

    Dim conn As OleDbConnection
    Dim cmd As OleDbCommand

    Public Sub openDB()
        conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\VFMS_DB.mdb;" & "Jet OLEDB:System Database=Security.mdw;User ID=Adster;Password=300624;")
        conn.Open()
    End Sub

    Public Function UpdateUser() As Integer
        Dim retCode As New Integer

        Try
            openDB()
            cmd = conn.CreateCommand()

아래의 업데이트 명령은 다음과 같은 오류가 계속됩니다. 그리고 나는 이유를 모른다. Ausername 필드는 문자열 필드이며 채워 졌는지 확인했습니다.

            cmd.CommandText = "UPDATE Users SET [First Name] = '" & aName & "', [Last Name] = '" & aSurname & "', [Contact Number] = '" & aContactNum & "', [Password] = '" & aPassword & "', [User Rights] = '" & aUserRights + "' WHERE [Username] = '" + aUserName + "' "

            cmd.ExecuteNonQuery()
            conn.Close()

            'rsAddRecs = rsConn.Execute("UPDATE Users ([First Name], [Last Name], [Contact Number], [User Name], [Password], [User Rights]) VALUES ('" & aName & "','" & aSurname & "','" & aContactNum & "','" & aUserName & "','" & aPassword & "','" & aUserRights & "')")

            retCode = 0
            'rsConn.Close()
            Return retCode

        Catch ex As Exception
            MessageBox.Show(ex.ToString, ex.Message, MessageBoxButtons.OK)
            retCode = 1
            Return retCode
        End Try
    End Function
도움이 되었습니까?

해결책

당신은 오타가 있습니다. 당신은 사용하고 있습니다 + 대신 SQL 문자열의 끝에있는 문자 & 캐릭터

잘못된

cmd.CommandText = "UPDATE Users SET [First Name] = '" & aName & _ 
                  "', [Last Name] = '" & aSurname & _
                  "', [Contact Number] = '" & aContactNum & _
                  "', [Password] = '" & aPassword & "', [User Rights] = '" & _
                  aUserRights + "' WHERE [Username] = '" + aUserName + "' "
'                             ^                          ^           ^

오른쪽

cmd.CommandText = "UPDATE Users SET [First Name] = '" & aName & _
                  "', [Last Name] = '" & aSurname & _
                  "', [Contact Number] = '" & aContactNum & _
                  "', [Password] = '" & aPassword & "', [User Rights] = '" & _
                  aUserRights & "' WHERE [Username] = '" & aUserName & "' "
'                             ^                          ^           ^

다른 팁

SQL 코드가 사용됩니다 [Username]:

cmd.CommandText = "UPDATE Users SET ... [Username]...

반면에 사용 된 코드를 언급했습니다 [User Name]:

'rsAddRecs = rsConn.Execute("UPDATE Users ... [User Name]...

잘못된 열 이름이 문제의 소스 일 수 있습니까?

또 다른 생각 : 매개 변수 값을 소독 했습니까? 어쨌든, 준비된 문 (또는 심지어 절차)을 사용하고 매개 변수 객체를 사용하여 SQL을 호출하여 OLE DB 제공 업체에 매개 변수 값을 소독하는 것을 연기해야한다고 생각합니다. 당신 또는 나 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top