Avatar billede -xyz- Nybegynder
07. maj 2006 - 14:54 Der er 11 kommentarer og
1 løsning

Syntaks fejl, Kan ikke se den.

Hej, jeg har et problem, med min kode der ikke virker jeg får en syntaksfejl i min sql når jeg kører den første ExecuteNonQuery Altså første gang jeg forsøger at få udført noget på DB

FEJL:

Incorrect syntax near '14'.
//14 Står ingen steder i koden, og ej heller i nogen af de indsatte værdier

Her er koden:

conn.Open()
        Dim trans As SqlTransaction = conn.BeginTransaction()

        Try
            Dim cmd As SqlCommand = New SqlCommand("INSERT INTO Ordre (Adresse, Dato, Distrikt, Postnr, Land, Navn, Sum) VALUES ('" + adresse + "'," + dato.ToString() + ",'" + Distrikt + "', " + Postnr.ToString() + ", '" + Land + "', '" + Navn + "', " + Sum.ToString() + " );", conn)
            cmd.Transaction = trans
            cmd.ExecuteNonQuery() //FEJLEN OPSTÅR HER

            cmd = New SqlCommand("SELECT @@IDENTITY() AS ID")
            cmd.Transaction = trans
            Dim reader As SqlDataReader = cmd.ExecuteReader()

            Dim autoID As Integer = 0
            If (reader.Read()) Then
                autoID = CType(reader("ID"), Integer)
            End If

            Dim ordrelinie As Ordrelinie = New Ordrelinie(trans)
            Dim v As Vare = New Vare(trans)

            For Each ol As Ordrelinie In OrdreLinier

                ordrelinie.Insert(autoID, ol.Varenr, ol.Varenr, ol.Antal, ol.Sum)
                v.UpdateLager(ol.Varenr, ol.Antal)
            Next

            trans.Commit()
        Catch ex As Exception
            Throw ex
            trans.Rollback()
        Finally
            conn.Close()
        End Try
Avatar billede driis Nybegynder
07. maj 2006 - 14:56 #1
Hvad er cmd.CommandText lige før cmd.ExecuteNonQuery kaldes ?
Avatar billede dr_chaos Nybegynder
07. maj 2006 - 14:59 #2
Dim cmd As SqlCommand = New SqlCommand("INSERT INTO Ordre (Adresse, Dato, Distrikt, Postnr, Land, Navn, Sum) VALUES ('" + adresse + "','" + dato.ToString() + "','" + Distrikt + "', " + Postnr.ToString() + ", '" + Land + "', '" + Navn + "', " + Sum.ToString() + " );", conn)
Avatar billede erikjacobsen Ekspert
07. maj 2006 - 15:09 #3
Sum ku' risikere at være et reserveret ord. Skriv: [sum]
Hvad type er dit dato felt?
Avatar billede arne_v Ekspert
07. maj 2006 - 15:51 #4
SUM er stensikkert reserveret

er dato og postnr også teskt typer i databasen ?
Avatar billede -xyz- Nybegynder
08. maj 2006 - 09:46 #5
Jeg har fundet ud af at det er på grund af at jeg bruger DateTime.Now altså jeg fik tiden med (Kl. 14), men jeg har stadig ikke fundet en løsning.

Sum er ikke problemet.

Det virker nemlig når jeg sætter Konstanten "01-01-1900" ind, men ikke med tid.

Min Dato er en DateTime I DB, nogen forslag?
Avatar billede ldanielsen Nybegynder
08. maj 2006 - 10:02 #6
Jeg vil foreslå:

" .... VALUES ('" + adresse + "', CONVERT(datetime, '" + dato.ToString() + "', <style>),'" + Distrikt + "', " + Postnr.ToString() + ", ......"


Så du tager tekststrengen der kommer ud af dato.ToString() og konverterer den til datetime i T-SQL. Hvor der står <style> skal der stå et tal, der fortæller hvordan tekstsstrengen er formateret. Kan ud give et eksempel på hvordan dato.ToString() ser ud?
Avatar billede -xyz- Nybegynder
08. maj 2006 - 10:50 #7
Det hjalp desværre ikke, dette er min værdi

dato    #5/8/2006 10:48:36 AM#
Avatar billede -xyz- Nybegynder
08. maj 2006 - 11:18 #8
ldanielsen > Det virkede alligevel, læg et svar
Avatar billede ldanielsen Nybegynder
08. maj 2006 - 12:50 #9
Der er noget der tyder på at det er en Access database??

Og så kan CONVERT vel ikke virke??
Avatar billede arne_v Ekspert
08. maj 2006 - 12:56 #10
SqlCommand => SQL Server

jeg tror bare at det var dato literal formatet som var Access style
Avatar billede -xyz- Nybegynder
23. maj 2006 - 10:42 #11
ldanielsen, læg et svar ellers lukker jeg bare
Avatar billede ldanielsen Nybegynder
23. maj 2006 - 11:18 #12
Svar
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
Computerworld tilbyder specialiserede kurser i database-management

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