Avatar billede fila Nybegynder
14. december 2004 - 10:28 Der er 15 kommentarer

Hvorfor virker det ikke ?

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

Dim oConn As SQLConnection
Dim Send As SQLCommand
Dim Hent As SQLCommand
Dim Penge As String

Penge = request("Prisen")
oConn = New SQLConnection("server=x.x.x.x;user id=;password=;database=licenser")

Send = New SQLCommand("INSERT INTO Licens (Pris) VALUES ('" & Penge & "')")


oConn.Open()

oConn.BeginTransaction()

oConn.Close()
%>

Penge er mit id på den Textbox hvor jeg indskriver min værdi og Licens er min database og Pris er en coluum i tabellen, har fjernet ip'en fordi jeg er paranoid ^^ ps begyndte med MS Sql og ASP for 30min siden så er ikke særlig haj til det
Avatar billede fila Nybegynder
14. december 2004 - 10:29 #1
hov glemte lige at skrive "Licens" er min tabel og Pris er colum
Avatar billede ladyhawke Novice
14. december 2004 - 10:46 #2
Det ville være en hel del nemmere, hvis du kunne være lidt mere specifik end: "virker ikke".

Får du nogen fejlmeddelelser? Hvis ikke er det så fordi der bare ikke bliver lagt noget i basen?
Avatar billede fila Nybegynder
14. december 2004 - 10:52 #3
Det sjove er at jeg ikke får nogen fejlmeddelser, og ja der bliver ikke lagt noget ind i min database :| så det er der mit problem ligger
Avatar billede fila Nybegynder
14. december 2004 - 10:54 #4
Dooh skrev også forkert Prisen er mit "NAME=Prisen" på min textbox og Penge er den variable som skal indeholde den værdi jeg skriver ind i boxen
Avatar billede ladyhawke Novice
14. december 2004 - 10:56 #5
Hmmm, nu er jeg ikke haj til VB, men det ser ikke ud til at du sender din query: du åbner en connection og begynder en transaction, men du fortæller ingen steder at det er Send, der skal bruges...
Avatar billede ladyhawke Novice
14. december 2004 - 10:58 #6
Prøv det her (tilpasset din egen kode):

Public Sub CreateMySqlCommand(myExecuteQuery As String, myConnection As SqlConnection)
    Dim myCommand As New SqlCommand(myExecuteQuery, myConnection)
    myCommand.Connection.Open()
    myCommand.ExecuteNonQuery()
    myConnection.Close()
End Sub 'CreateMySqlCommand
Avatar billede fila Nybegynder
14. december 2004 - 10:59 #7
Hvis jeg skriver send i BeginTransaction(Send) så laver den, denne fejl

: error BC30518: Overload resolution failed because no accessible 'BeginTransaction' can be called with these arguments:
    'Public Function BeginTransaction(transactionName As String) As System.Data.SqlClient.SqlTransaction': Value of type 'System.Data.SqlClient.SqlCommand' cannot be converted to 'String'.
    'Public Function BeginTransaction(iso As System.Data.IsolationLevel) As System.Data.SqlClient.SqlTransaction': Value of type 'System.Data.SqlClient.SqlCommand' cannot be converted to 'System.Data.IsolationLevel'.

oConn.BeginTransaction(Send)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avatar billede ladyhawke Novice
14. december 2004 - 11:01 #8
i ovenstående bliver din command tilknyttet den specifikke connection og du sender et statement til din database.

At benytte transcantio her er overkill, synes jeg, men hvis du vil skal der meget mere til:

Public Sub RunSqlTransaction(myConnString As String)
    Dim myConnection As New SqlConnection(myConnString)
    myConnection.Open()
   
    Dim myCommand As SqlCommand = myConnection.CreateCommand()
    Dim myTrans As SqlTransaction
   
    ' Start a local transaction
    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted, "SampleTransaction")
    ' Must assign both transaction object and connection
    ' to Command object for a pending local transaction
    myCommand.Connection = myConnection
    myCommand.Transaction = myTrans

    Try
      myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
      myCommand.ExecuteNonQuery()
      myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
      myCommand.ExecuteNonQuery()
      myTrans.Commit()
      Console.WriteLine("Both records are written to database.")
    Catch e As Exception
      Try
        myTrans.Rollback("SampleTransaction")
      Catch ex As SqlException
        If Not myTrans.Connection Is Nothing Then
          Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
                            " was encountered while attempting to roll back the transaction.")
        End If
      End Try
   
      Console.WriteLine("An exception of type " & e.GetType().ToString() & _
                      "was encountered while inserting the data.")
      Console.WriteLine("Neither record was written to database.")
    Finally
      myConnection.Close()
    End Try
End Sub 'RunSqlTransaction
Avatar billede ladyhawke Novice
14. december 2004 - 11:02 #9
Mit råd er at droppe transaction til at starte med, få lige hul igennem først. Se på eksemplet fra 10:58:57
Avatar billede fila Nybegynder
14. december 2004 - 11:04 #10
Thx men der er hul igennem til databasen, har prøvet at hente stuff fra den som jeg har skrevet manuelt i den, men jeg kan bare ikke sende til den
Avatar billede ladyhawke Novice
14. december 2004 - 11:08 #11
har du implementeret det eksempel jeg skrev først?

Din oprindelige kode gør intet i retning af at sende noget til databasen så vidt jeg kan se. Du har en command, som ikke er knyttet til noget som helst og du åbner en forbindelse, siger du vil starte en transaction, og lukker så forbindelsen igen. Det vil der ikke ske noget ved (i hvert fald ikke i basen, andet end at du har en åben connection et øjeblik.

Hvad er koden til der hvor du henter i basen? eller har du gjort direkte i basen?
Avatar billede ladyhawke Novice
14. december 2004 - 11:13 #12
Det er denne kode jeg gerne vil have du prøver:

Dim oConn As SQLConnection
Dim Penge As String

Penge = request("Prisen")
oConn = New SQLConnection("server=x.x.x.x;user id=;password=;database=licenser")

Dim Send As New SqlCommand("INSERT INTO Licens (Pris) VALUES ('" & Penge & "')"), oConn)

Send.Connection.Open()
Send.ExecuteNonQuery()
Send.Connection.Close()
Avatar billede ladyhawke Novice
14. december 2004 - 11:21 #13
Lægger lige et svar, for det heldige tilfælde at du kan bruge min research til noget
Avatar billede trumf Nybegynder
04. januar 2005 - 11:12 #14
Det kunne også være at den bruger der står i user id ikke har rettigheder til at skrive, men kun læse fra databasen...
Avatar billede ladyhawke Novice
22. februar 2006 - 15:09 #15
Sådan godt et år senere.... Er det ikke lukketid, ellers ville lidt respons være lækkert...
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