Avatar billede fila Nybegynder
10. december 2004 - 09:43 Der er 6 kommentarer og
1 løsning

Why da virker det ikke ?

Jeg har lavet en database som indeholder en tabel som hedder Licens, og videre i den tabel er der en colum som hedder Pris og som er en float.


<% @ Import Namespace="System.Data.SqlClient"%><%

Dim oConn as New SQLConnection
Dim stlSQL
oConn.ConnectionString = "server=192.168.1.4;user id=sa;password=;database=licenser"

oConn.Open
stlSQL = "INSERT INTO Licens(Pris) VALUES ()"

On Error Resume Next

oConn.BeginTransaction(stlSQL)

oConn.Close
%>

MEN DET VIRKER IKKE NOGEN SOM KAN GIVE MIG SOME HINTS TIL MIT PROBLEM MVH FINN :)
Avatar billede fila Nybegynder
10. december 2004 - 09:44 #1
Doh glemte at skrive at jeg har lavet et html interface hvor du kan skrive en pris som derefter skal sendes videre til databasen gennem asp scriptet
Avatar billede erikjacobsen Ekspert
10. december 2004 - 09:50 #2
Der er ingen værdi, der indsættes her

  stlSQL = "INSERT INTO Licens(Pris) VALUES ()"

Du kunne

  stlSQL = "INSERT INTO Licens(Pris) VALUES (123.45)"

men det er vel prisen fra indtastningsformularen, der skal sættes ind...
Avatar billede dsj Nybegynder
10. december 2004 - 09:50 #3
Når nu du skriver:

stlSQL = "INSERT INTO Licens(Pris) VALUES ()"

Så mangler der da noget i parantesen efter values, altså selve den pris du vil indsætte i tabellen Licens, f.eks.:

stlSQL = "INSERT INTO Licens(Pris) VALUES (" + Request["pris"] + ")"
Avatar billede bumle90 Nybegynder
10. december 2004 - 09:59 #4
hmmm nu går jeg ud fra at det du vil gøre er at oprette en connection, starte en transaction, lave nogle operationer og committe. I så fald skal du huske at
1. lav din connection.
2. opret dit commandset ud fra denne
3. opret transaktionsobjektet
4. begynde transaktionen
5. eksekverere de sql der skal eksekveres vha. commandsettet
6. comitte din transaktion
7. fange en evt. exception hvor du kan lave rollback.

Det ser ud som om du mangler et par af de trin i din kode.
Evt kig på den her lille kodestump. Den er godt skrevet i C# og til oledb, men det burde du kunne gennemskue alligevel :) Det er faktisk det samme du skal gøre:


            string sql=    "INSERT INTO T_Forlaengninger(CertID,Forlaengsperiode,[Date],OprettetAf)"+
                        " VALUES(@certId,@forlaengperiode,@confirmDate,@oprettetAf)";
            comm2=new System.Data.OleDb.OleDbCommand(sql,OleConn2);
            System.Data.OleDb.OleDbTransaction trans=OleConn2.BeginTransaction();
            comm2.Transaction=trans;
                    comm2.Parameters.Add("@certid",System.Data.OleDb.OleDbType.VarChar);
                    comm2.Parameters["@certid"].Value="xxx";

                    comm2.Parameters.Add("@forlaengperiode",System.Data.OleDb.OleDbType.Integer);
                    comm2.Parameters["@forlaengperiode"].Value="xxx";

                    comm2.Parameters.Add("@confirmDate",System.Data.OleDb.OleDbType.Date);
                    comm2.Parameters["@confirmDate"].Value="xxx";

                    comm2.Parameters.Add("@oprettetAf",System.Data.OleDb.OleDbType.VarChar);
                    comm2.Parameters["@oprettetAf"].Value="xxx";
                    comm2.ExecuteNonQuery();
                trans.Commit();
            }catch(Exception exc)
            {
                trans.Rollback();
               
            }
Avatar billede fila Nybegynder
10. december 2004 - 10:12 #5
Well når jeg skriver et tal i parantesen så brokker den sig over "Maximum lengt is 32
Selvom jeg skriver 1 :) har prøvet fra 1-35 og det virker ingen steder
Avatar billede erikjacobsen Ekspert
10. december 2004 - 10:25 #6
Hvordan er din tabel, licens, defineret?
Avatar billede fila Nybegynder
10. december 2004 - 10:27 #7
som en float
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