Avatar billede websam Nybegynder
21. november 2005 - 14:31 Der er 8 kommentarer og
1 løsning

Database update ?

Hejsa,

Jeg har en function der skal opdatare en record i databasen. Men problemet er at den ikke foretager sig noget. Jeg får ingen fejl, men ExecuteNonQuery() retuere 0 for antal records der er blevet opdateret og det forstår jeg ikke helt :

        Public Function EditTeam(ByVal TeamId As Integer, _
                                ByVal TeamName As String, _
                                ByVal TeamDay As String, _
                                ByVal TeamTime As String, _
                                ByVal TeamMax As Integer, _
                                ByVal GroupBy As Integer) As Integer Implements iBookingData.EditTeam
            Dim objComm As OleDbCommand = New OleDbCommand
            '--- Sætter database parametre.
            objComm.Parameters.Add("@TeamId", OleDbType.Integer)
            objComm.Parameters.Add("@TeamName", OleDbType.VarChar)
            objComm.Parameters.Add("@TeamDay", OleDbType.VarChar)
            objComm.Parameters.Add("@TeamTime", OleDbType.VarChar)
            objComm.Parameters.Add("@TeamMax", OleDbType.Integer)
            objComm.Parameters.Add("@GroupBy", OleDbType.Integer)
            '--- Sætter value på parametre.
            objComm.Parameters("@TeamId").Value = TeamId
            objComm.Parameters("@TeamName").Value = TeamName
            objComm.Parameters("@TeamDay").Value = TeamDay
            objComm.Parameters("@TeamTime").Value = TeamTime
            objComm.Parameters("@TeamMax").Value = TeamMax
            objComm.Parameters("@GroupBy").Value = GroupBy
            objComm.Connection = objDb.AccessConnect
            'HttpContext.Current.Response.Write(@TeamId)
            '--- Laver sql update i database.
            objComm.CommandText = "Update tbl_booking Set " _
                                + "TeamName = @TeamName, TeamDay = @TeamDay, " _
                                + "TeamTime = @TeamTime, TeamMax = @TeamMax, " _
                                + "GroupBy = @GroupBy Where Id = @TeamId"
            objComm.ExecuteNonQuery()
            objComm.Parameters.Clear()
            objDb.AccessClose()
            RemoveCacheAllDay()
            RemoveCacheAll()
            '--- Retunere id'et
            Return TeamId
        End Function

Jeg har oxo prøvet at gå helt uden om mit buesness lag, samt mit interface blot for at se om det var der, der opstod problemer.

/Websam
Avatar billede arne_v Ekspert
21. november 2005 - 14:46 #1
prøv

angiv længde:

objComm.Parameters.Add("@TeamName", OleDbType.VarChar, 50)

*og*

have parameterne i den samme rækkefølge som i SQL
Avatar billede websam Nybegynder
21. november 2005 - 14:52 #2
Ja så ser det ud til at virke, men hvorfor skulle der være nogen forskel på Sql vs. Access ?

I Sql har jeg aldrig haft det problem !

/Websam
Avatar billede arne_v Ekspert
21. november 2005 - 14:56 #3
det rækkefølge specifikke er så vidt jeg ved en "feature" i OLE DB !
Avatar billede arne_v Ekspert
21. november 2005 - 14:57 #4
Du kan tydeliggøre det ved bare at skrive ? for alle parameterne i SQL'en

Det er rækkefølgen som betyder noget ikke navnene
Avatar billede websam Nybegynder
21. november 2005 - 14:57 #5
Og det var i øvrigt nok at sætte mine parametre i samme rækkefølge som i sql'en længden på felterne er ikke nødvendigt ;o)

/Websam
Avatar billede websam Nybegynder
21. november 2005 - 14:57 #6
ok, smid et svar
Avatar billede arne_v Ekspert
21. november 2005 - 15:00 #7
svar
Avatar billede arne_v Ekspert
21. november 2005 - 15:01 #8
der er et eller andet tilfælde med en eller anden database hvor man skal sætte længde på

jeg gør det altid
Avatar billede websam Nybegynder
21. november 2005 - 15:04 #9
Ok det var så nok en god idee at gøre sig til vane ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester