Avatar billede per2edb Praktikant
18. september 2009 - 16:58 Der er 17 kommentarer og
1 løsning

Indsæt data i Access DB

Hej
Jeg har et sidste spørgsmål inden min aspx web side er færdig.

Disse koder skulle indsætte data i Access men de bliver ikke gemt?
Kan i hjælpe?


<%@ Page Language="VB" masterpagefile="Master.master" title="Forside" %>
<%@ Import Namespace="System.Data.OleDb" %>
<asp:Content id="Content1" runat="server" contentplaceholderid="ContentPlaceHolder1">


<script language="VB" runat="server" >
   
    Sub x
   
        Dim MyConnection As New OleDbConnection()
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Besog.mdb"
        Dim strSQL As String = "INSERT INTO Besogende (REMOTE_HOST,Dato) VALUES('" & request.ServerVariables("REMOTE_HOST") & "','" & now() & "')"
        Dim objCommand As New OleDbCommand(strSQL, MyConnection)
   
      MyConnection.Open()
      objCommand.ExecuteNonQuery()
      MyConnection.Close()

    End Sub

</script>
Avatar billede arne_v Ekspert
18. september 2009 - 18:45 #1
Bliver Sub X kaldet ?
Avatar billede per2edb Praktikant
18. september 2009 - 19:00 #2
Hej
Troede den blev tilgået automatisk. Hvordan kaldes den?
Avatar billede arne_v Ekspert
18. september 2009 - 19:08 #3
Det afhaenger jo lidt af hvornaar du vil have den kaldt.
Avatar billede per2edb Praktikant
18. september 2009 - 19:19 #4
Den skal kaldes når side kalde. Når jeg har lagt den i en sub er det fordi jeg ikke kender nok til vb.net til at få det til at virke når det ligger direkte på siden. Koderne har jeg i forvejen fra en sub
Avatar billede arne_v Ekspert
18. september 2009 - 19:25 #5
Sub Page_Load(sender As Object, e As EventArgs)
    ' bla bla
End Sub

kaldes naar siden loades.
Avatar billede per2edb Praktikant
19. september 2009 - 01:44 #6
Hej
Det virker lokalt på min komputer men oplodet på webhotellet får jeg denne fejl:

Operation must use an updateable query.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Operation must use an updateable query.

Source Error:


Line 21:                 Dim objCommand As New OleDbCommand(strSQL, MyConnection)
Line 22:                 MyConnection.Open()
Line 23:                 objCommand.ExecuteNonQuery()
Line 24:                 MyConnection.Close()
Line 25:             End Sub
Avatar billede arne_v Ekspert
19. september 2009 - 01:56 #7
Det lyder som en MDB fil med manglende skrive adgang til.
Avatar billede per2edb Praktikant
19. september 2009 - 13:51 #8
Jeg kan tilgå Access DB på min PC men oplodet på hosten får jeg nedenfor listede fejl

Det er dette udtryk der fremhæves med rødt som en fejl: objCommand.ExecuteNonQuery()
Jeg er selv tvivlende over for koderne jeg har taget fra nette uden at forstå dem i dybten. Kan i hjælpe med om de er rigtige.
Jeg har listet dem længere nede fra en "tom" aspx side

------------------ Fejl udskrift ------------
Operation must use an updateable query.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Operation must use an updateable query.

Source Error:


Line 10:             Dim objCommand As New OleDbCommand(strSQL, MyConnection)
Line 11:             MyConnection.Open()
Line 12:             objCommand.ExecuteNonQuery() <== highligt
Line 13:             MyConnection.Close()
Line 14:         End Sub

-------------- Min aspx ----------------

<%@ Page Language="VB" masterpagefile="APC.master" title="Forside" %>
<%@ Import Namespace="System.Data.OleDb" %>
<asp:Content id="Content1" runat="server" contentplaceholderid="ContentPlaceHolder1">
       
        <script language="VB" runat="server" >
        Sub Page_Load(sender As Object, e As EventArgs)
            Dim MyConnection As New OleDbConnection()
            MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Besog.mdb"
            Dim strSQL As String = "INSERT INTO Besogende (REMOTE_HOST,Dato) VALUES('" & request.ServerVariables("REMOTE_HOST") & "','" & now() & "')"
            Dim objCommand As New OleDbCommand(strSQL, MyConnection)
            MyConnection.Open()
            objCommand.ExecuteNonQuery()
            MyConnection.Close()
        End Sub
      </script>

</asp:Content>
Avatar billede arne_v Ekspert
19. september 2009 - 14:21 #9
Ja.

"Operation must use an updateable query." plejer at betyde manglende adgang til MDB filen.
Avatar billede per2edb Praktikant
19. september 2009 - 23:33 #10
Jeg er nu tættere på fejlen.
Databasen har ingen fejl men:
Dim strSQL As String = "INSERT INTO Besogende (REMOTE_HOST,Dato) VALUES('" & request.ServerVariables("REMOTE_HOST") & "','" & now() & "')"
Har en fejl der gør webhotellet ikke kan køre det.
Dim SterSQL.... virker på en ASP side men ikke på ASPX
Er der nogen der kan hjælpe med at lave Dim strSQL.... korrekt?

MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Besog.mdb"
Dim strSQL As String = "INSERT INTO Besogende (REMOTE_HOST,Dato) VALUES('" & request.ServerVariables("REMOTE_HOST") & "','" & now() & "')"
Dim objCommand As New OleDbCommand(strSQL, MyConnection)
MyConnection.Open()
objCommand.ExecuteNonQuery()
MyConnection.Close()
Avatar billede per2edb Praktikant
20. september 2009 - 13:26 #11
Er der ingen der kan hjælpe med at laver en INSERT INTO på en aspx side med VB ?
Jeg giver gerne 200 point mere
Avatar billede jimmydk Nybegynder
20. september 2009 - 20:22 #12
Husk at ændre stien så den passer til dig. :)


        Dim MyConnection As OleDbConnection
        Dim MyCommand As OleDbCommand

        MyConnection = New OleDbConnection()
        MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Password.mdb"
        Dim strSQL As String = "INSERT INTO Adgangskoder (Brugernavn, Adgangskode) "
        strSQL += "VALUES (@Brugernavn, @Adgangskode)"
        MyCommand = New OleDbCommand(strSQL, MyConnection)
        Try
            MyConnection.Open()


            MyCommand.Parameters.Add("@Brugernavn", OleDbType.VarChar)
            MyCommand.Parameters.Add("@Adgangskode", OleDbType.VarChar)

            MyCommand.Parameters("@Brugernavn").Value = TextBox1.Text
            MyCommand.Parameters("@Adgangskode").Value = TextBox2.Text


            MyCommand.ExecuteNonQuery()
        Catch exept As Exception

            Response.Write(exept)
        End Try
        MyConnection.Close()
Avatar billede per2edb Praktikant
21. september 2009 - 15:12 #13
Så virker det. Tak for hjælpen
Avatar billede per2edb Praktikant
21. september 2009 - 15:13 #14
Kan i lave det så i får point
Avatar billede jimmydk Nybegynder
21. september 2009 - 16:13 #15
:)
Avatar billede arne_v Ekspert
27. september 2009 - 04:45 #16
:-(
Avatar billede per2edb Praktikant
27. september 2009 - 12:33 #17
arne_v du skal også have point
Vil du lave det så jeg kan gøre det
Avatar billede arne_v Ekspert
27. september 2009 - 21:46 #18
Det er for sent nu.
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
Kurser inden for grundlæggende programmering

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