Avatar billede rille101 Nybegynder
19. juli 2005 - 10:55 Der er 12 kommentarer og
1 løsning

Update i access db i asp.net 2.0 vb-script

Jeg er netop gået igang med at lære asp.net i visual web dev. 2005 beta.
jeg sidder med et detailsView, hvorfra brugeren skal kunne opdatere dataerne fra pågældende post.
Når man trykker på edit knappen forvandles alle felterne til tekstbokse som de skal, men når jeg så vil opdatere posten, får jeg følgende fejl:

Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "id = " Request.QueryString["id"];".

Min select string ser således ud:

SELECT * FROM [aktivitetskalender]

Min update string ser således ud (har stykket den sammen ud fra andre spm her på exp):

UPDATE [aktivitetskalender] SET [titel] =@titel
WHERE id = " Request.QueryString["id"];

Der skal lige siges, at der findes flere felter i tabellen der opdateres i, men for at slippe for at skulle ændre for mange steder før det hele virker, har jeg begrænset mig til at ville opdatere feltet "titel".
Avatar billede busschou Praktikant
19. juli 2005 - 10:59 #1
hmm kan det være den sædvanlige fejl med at på den ene side i databasen er id et tal, men det du putter ind er en streng, eller omvendt
Eller at din querystring er tom
Avatar billede rille101 Nybegynder
19. juli 2005 - 11:51 #2
Det ved jeg ikke, men der bliver da ikke puttet noget ind i "id" gør der?
Det skulle der ikke gerne, da det er en autonummerering.
Avatar billede busschou Praktikant
19. juli 2005 - 11:55 #3
nåeh nej hehe, my bad tænkte ikke på det var en where
Men er du så sikker på at der er noget i din querystring?
Altså at du ikke ender op med
WHERE id =    <-- ingenting
Avatar billede rille101 Nybegynder
19. juli 2005 - 18:30 #4
Det ville umiddelbart mene. I min adresselinje står der ihvertfald .aspx?id=2
Avatar billede nielle Nybegynder
19. juli 2005 - 18:33 #5
Du mangler da vist et plus:

"UPDATE [aktivitetskalender] SET [titel] =@titel
WHERE id = " + Request.QueryString["id"];
Avatar billede nielle Nybegynder
19. juli 2005 - 18:34 #6
Siden at du nu bruger parametre til f.eks. @title, hvorfor bruger du det så ikke på id?
Avatar billede rille101 Nybegynder
19. juli 2005 - 19:54 #7
Nielle-> Har prøvet med +  Request.querystring... men får samme synax fejl.

ved @id får jeg ingen fejl, dog sker der ingen opdatering.
Avatar billede nielle Nybegynder
19. juli 2005 - 19:59 #8
Prøv at poste noget mere af din kode. Sådan at vi kan se det i sammenhængen.
Avatar billede rille101 Nybegynder
19. juli 2005 - 23:27 #9
Her er koden for hele siden:

<%@ Page Language="VB" MasterPageFile="~/lokalinfo/lokalinfo.master" AutoEventWireup="false" CodeFile="aktiviteter_details.aspx.vb" Inherits="aktiviteter_details" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:DetailsView OnUpdateCommand="Update_Command" DataKeyField="title_id" ID="DetailsView1" runat="server" AutoGenerateRows="False" BorderWidth="0px"
        CellSpacing="5" DataKeyNames="id" DataSourceID="aktiviteter" Height="50px"
        Width="403px" GridLines="None">
        <Fields>
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                SortExpression="id" />
            <asp:BoundField DataField="titel" HeaderText="titel" SortExpression="titel" />
            <asp:BoundField DataField="indhold" HeaderText="indhold" SortExpression="indhold" />
            <asp:BoundField DataField="sted" HeaderText="sted" SortExpression="sted" />
            <asp:BoundField DataField="startdato" HeaderText="startdato" SortExpression="startdato" />
            <asp:BoundField DataField="slutdato" HeaderText="slutdato" SortExpression="slutdato" />
            <asp:BoundField DataField="tidspunkt" HeaderText="tidspunkt" SortExpression="tidspunkt" />
            <asp:BoundField DataField="kontaktperson" HeaderText="kontaktperson" SortExpression="kontaktperson" />
            <asp:BoundField DataField="email" HeaderText="email" SortExpression="email" />
            <asp:BoundField DataField="telefon" HeaderText="telefon" SortExpression="telefon" />
            <asp:BoundField DataField="ansvarlig" HeaderText="ansvarlig" SortExpression="ansvarlig" />
            <asp:BoundField DataField="billede" HeaderText="billede" SortExpression="billede" />
            <asp:CommandField ShowEditButton="True" />
        </Fields>
    </asp:DetailsView>
    &nbsp;
    <br />
    <br />
    <asp:AccessDataSource ID="aktiviteter" runat="server" ConflictDetection="CompareAllValues"
        DataFile="~/App_Data/ballumby.mdb"
        SelectCommand="SELECT * FROM [aktivitetskalender]" UpdateCommand='UPDATE [aktivitetskalender] SET [titel] =@titel&#13;&#10;WHERE id = @id'>
        <UpdateParameters>
            <asp:Parameter Name="titel" Type="String" />
            <asp:Parameter Name="indhold" Type="String" />
            <asp:Parameter Name="sted" Type="String" />
            <asp:Parameter Name="startdato" Type="DateTime" />
            <asp:Parameter Name="slutdato" Type="DateTime" />
            <asp:Parameter Name="tidspunkt" Type="DateTime" />
            <asp:Parameter Name="kontaktperson" Type="String" />
            <asp:Parameter Name="email" Type="String" />
            <asp:Parameter Name="telefon" Type="Int32" />
            <asp:Parameter Name="ansvarlig" Type="String" />
            <asp:Parameter Name="billede" Type="String" />
            <asp:Parameter Name="original_id" Type="Int32" />
            <asp:Parameter Name="original_titel" Type="String" />
            <asp:Parameter Name="original_indhold" Type="String" />
            <asp:Parameter Name="original_sted" Type="String" />
            <asp:Parameter Name="original_startdato" Type="DateTime" />
            <asp:Parameter Name="original_slutdato" Type="DateTime" />
            <asp:Parameter Name="original_tidspunkt" Type="DateTime" />
            <asp:Parameter Name="original_kontaktperson" Type="String" />
            <asp:Parameter Name="original_email" Type="String" />
            <asp:Parameter Name="original_telefon" Type="Int32" />
            <asp:Parameter Name="original_ansvarlig" Type="String" />
            <asp:Parameter Name="original_billede" Type="String" />
        </UpdateParameters>
    </asp:AccessDataSource>
    </asp:Content>
Avatar billede nielle Nybegynder
20. juli 2005 - 09:15 #10
Jeg var ikke lige opmærksom på at det var VB (arbejder selv mest i C#) ... så er det selvfølgeligt '&' i stedet for '+'.
Avatar billede nielle Nybegynder
20. juli 2005 - 09:19 #11
I øvrigt bør du rette din kode til noget i denne stil:

<asp:AccessDataSource ID="aktiviteter" runat="server" ConflictDetection="CompareAllValues"
    DataFile = "~/App_Data/ballumby.mdb"
    SelectCommand = "SELECT * FROM [aktivitetskalender]"
    UpdateCommand = "UPDATE [aktivitetskalender] SET [titel] = @titel WHERE id = @id">
    <UpdateParameters>
        <asp:Parameter Name="titel" Type="String" />
        <asp:Parameter Name="indhold" Type="String" />
        <asp:Parameter Name="sted" Type="String" />
        <asp:Parameter Name="startdato" Type="DateTime" />
        <asp:Parameter Name="slutdato" Type="DateTime" />
        <asp:Parameter Name="tidspunkt" Type="DateTime" />
        <asp:Parameter Name="kontaktperson" Type="String" />
        <asp:Parameter Name="email" Type="String" />
        <asp:Parameter Name="telefon" Type="Int32" />
        <asp:Parameter Name="ansvarlig" Type="String" />
        <asp:Parameter Name="billede" Type="String" />
        <asp:Parameter Name="original_id" Type="Int32" />
        <asp:Parameter Name="original_titel" Type="String" />
        <asp:Parameter Name="original_indhold" Type="String" />
        <asp:Parameter Name="original_sted" Type="String" />
        <asp:Parameter Name="original_startdato" Type="DateTime" />
        <asp:Parameter Name="original_slutdato" Type="DateTime" />
        <asp:Parameter Name="original_tidspunkt" Type="DateTime" />
        <asp:Parameter Name="original_kontaktperson" Type="String" />
        <asp:Parameter Name="original_email" Type="String" />
        <asp:Parameter Name="original_telefon" Type="Int32" />
        <asp:Parameter Name="original_ansvarlig" Type="String" />
        <asp:Parameter Name="original_billede" Type="String" />
    </UpdateParameters>
</asp:AccessDataSource>

- om end jeg ikke forstår hvorfor du har så mange UpdateParamtre når det kun er title-feltet du opdatere.
Avatar billede rille101 Nybegynder
20. juli 2005 - 11:26 #12
Grunden til jeg har så mange parametre er, at det fra starten var meningen at alle disse felter skal opdateres. Men indtil jeg får det til at virke koncentrerer jeg mig lige om "titel" så jeg ikke skal lave så mange ændringer før jeg har den rigtige løsning.

Når jeg indsætter din tilrettede kode, så kommer jeg hele turen igennem, men desværre opdateres feltet ikke.
Avatar billede rille101 Nybegynder
22. juli 2005 - 10:39 #13
Som alternativ løsning har jeg istedet valgt at droppe access db og i stedet oprette en sql db via Visual web developer...

spm. lukket.
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