Avatar billede zulukrigeren Nybegynder
05. september 2006 - 15:16 Der er 15 kommentarer og
1 løsning

Update statment fejl i .NET

Hej, jeg er ved at lave mig en lille webshop. Jeg har problemer med at lave updates til min Access DB. Jeg bruger "Visual web developer 2005 express edition" da jeg er ny i .NET og mener der er gode toturials her i.

Jeg har lavet en Access_datasource som henter alt i en tabel, som jeg herefter får vist i et Gridview, heri kan jeg vælge at opdater en række, når jeg så ændrer et af felterne og trykker update får jeg flg. svar fra serveren. Detaljer om undtagelse: System.Data.OleDb.OleDbException: "Der er en syntaksfejl i UPDATE-sætningen."
Min update kode ser sådan her ud.
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <TABLE border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 100%">
        <TR>
            <TD style="width: 1068px; height: 49px; text-align: right" valign=top>
                <SPAN style="font-size: 10pt; font-family: Verdana">
                    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/webshop.mdb"
                        SelectCommand="SELECT * FROM [alder]" UpdateCommand="UPDATE alder SET alderId =, [Alder_i_år] =">
                        <UpdateParameters>
                            <asp:ControlParameter ControlID="GridView1" Name="alderID" PropertyName="SelectedValue" />
                            <asp:ControlParameter ControlID="GridView1" Name="AlderI&#197;r" PropertyName="SelectedValue" />
                        </UpdateParameters>
                    </asp:AccessDataSource>
                    &nbsp;&nbsp; &nbsp;&nbsp;</SPAN><SPAN
                    style="font-size: 10pt; font-family: Verdana"> </SPAN>
                </TD>
        </TR>

Håber i kan hjælpe mig.
Avatar billede dr_chaos Nybegynder
05. september 2006 - 16:06 #1
prøv med:
UpdateCommand="UPDATE alder SET alderId =?, [Alder_i_år] =?">


kan være du skal skrive :
<asp:ControlParameter ControlID="GridView1" Name="Alder_i_år"
Avatar billede mikkel_sommer Nybegynder
05. september 2006 - 16:06 #2
du har:
"UPDATE alder SET alderId =,[Alder_i_år]="

burde det ikke være:
"UPDATE alder SET alderId =[Alder_i_år]"

eller
"UPDATE alder SET alderId ='[Alder_i_år]'"
Avatar billede dr_chaos Nybegynder
05. september 2006 - 16:13 #3
mikkel han har 2 felter med værduer som skal indsættes.
Derfor du ingen af dine sql foreslag
Avatar billede dr_chaos Nybegynder
05. september 2006 - 16:15 #4
zulukrigeren   
noget helt andet er at den update sætning vil opdaterer alle poster i tabellen alder du mangler en where klausul.
Avatar billede zulukrigeren Nybegynder
05. september 2006 - 20:06 #5
Ja det er rigtigt jeg har to felter en alderId og Alder_i_år felt.
Ja jeg burde have en WHERE Course i sql sætningen. Men Jeg troede egentligt at programmet Visual web developer 2005 express edition" AKA VWD2006 som jeg arbejder i selv satte WHERE Courses da den jo selecter den specifikke rækkke som jeg har valgt til opdatering.
Avatar billede zulukrigeren Nybegynder
05. september 2006 - 20:12 #6
Jeg har desuden prøvet det du skrev dr_Chaos med de ? tegn. men får den samme fejl. Jeg poster lige hele koden her:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Vare Test page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <TABLE border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 100%">
        <TR>
            <TD style="width: 1068px; height: 49px; text-align: right" valign=top>
                <SPAN style="font-size: 10pt; font-family: Verdana">
                    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/webshop.mdb"
                        SelectCommand="SELECT * FROM [alder]" UpdateCommand="UPDATE alder SET Alder_i_år] =?">
                        <UpdateParameters>
                            <asp:ProfileParameter Name="?" PropertyName="Alder_i_&#229;r" />
                        </UpdateParameters>
                    </asp:AccessDataSource>
                    &nbsp;&nbsp; &nbsp;&nbsp;</SPAN><SPAN
                    style="font-size: 10pt; font-family: Verdana"> </SPAN>
                </TD>
        </TR>
        <TR>
            <TD style="width: 1068px; height: 349px" valign=top>
                <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                    AutoGenerateColumns="False" CellPadding="4" DataKeyNames="alderId" DataSourceID="AccessDataSource1"
                    ForeColor="#333333" GridLines="None">
                    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <Columns>
                        <asp:BoundField DataField="alderId" HeaderText="alderId" InsertVisible="False" ReadOnly="True"
                            SortExpression="alderId" />
                        <asp:BoundField DataField="Alder_i_&#229;r" HeaderText="Alder_i_&#229;r" SortExpression="Alder_i_&#229;r" />
                        <asp:CommandField ShowSelectButton="True" />
                        <asp:CommandField ShowEditButton="True" />
                    </Columns>
                    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                    <EditRowStyle BackColor="#999999" />
                    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                </asp:GridView>
            </TD>
        </TR>
    </TABLE>
</asp:Content>
Avatar billede dr_chaos Nybegynder
06. september 2006 - 08:12 #7
får du noget ud i feltet :
<asp:BoundField DataField="Alder_i_&#229;r" HeaderText="Alder_i_&#229;r" SortExpression="Alder_i_&#229;r" />
Jeg vil også lige anbefale dig at lade være med at bruge æøå i dine database felter brug
ae,oe og aa i stedet.
Avatar billede zulukrigeren Nybegynder
06. september 2006 - 11:52 #8
Ja jeg får noget i feltet, desuden har du ret i det med æøå, dette er blot et eks. jeg har prøvet uden æåø.
Avatar billede zulukrigeren Nybegynder
06. september 2006 - 11:58 #9
Kan det forresten passe at jeg skal poste med parameter ala: 
string queryString = "UPDATE [alder] SET [alderId]=@alderId, [Alder_i_år=@Alder_i_år WHERE ([alder].[a" + "lderId] = @alderId)";
Avatar billede dr_chaos Nybegynder
06. september 2006 - 12:16 #10
nej det skal du ikke med access.
Omdøb lige dine felter så de er uden æøå og paste en ny kode hvor du kan få værdier vist
Avatar billede zulukrigeren Nybegynder
06. september 2006 - 15:03 #11
Hermed den nye kode uden æøå:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Vare Test page" %>

<SCRIPT runat=server>

    protected void AccessDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {

    }
</SCRIPT>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <TABLE border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 100%">
        <TR>
            <TD style="width: 1068px; height: 49px; text-align: right" valign=top>
                <SPAN style="font-size: 10pt; font-family: Verdana">
                    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/webshop.mdb"
                        SelectCommand="SELECT * FROM [Kategorier]" OnSelecting=AccessDataSource1_Selecting UpdateCommand="UPDATE Kategorier SET KategoriId =, Kategorinavn =">
                        <UpdateParameters>
                            <asp:Parameter Name="newparameter" />
                        </UpdateParameters>
                    </asp:AccessDataSource>
                    &nbsp;&nbsp; &nbsp;&nbsp;</SPAN><SPAN
                    style="font-size: 10pt; font-family: Verdana"> </SPAN>
                </TD>
        </TR>
        <TR>
            <TD style="width: 1068px; height: 349px" valign=top>
                <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                    AutoGenerateColumns="False" CellPadding="4" DataKeyNames="KategoriId" DataSourceID="AccessDataSource1"
                    ForeColor="#333333" GridLines="None" AutoGenerateDeleteButton=True AutoGenerateEditButton=True AutoGenerateSelectButton=True>
                    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <Columns>
                        <asp:BoundField DataField="KategoriId" HeaderText="KategoriId" InsertVisible="False"
                            ReadOnly="True" SortExpression="KategoriId" />
                        <asp:BoundField DataField="Kategorinavn" HeaderText="Kategorinavn" SortExpression="Kategorinavn" />
                        <asp:CommandField />
                        <asp:CommandField ShowSelectButton="True" />
                    </Columns>
                    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                    <EditRowStyle BackColor="#999999" />
                    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                </asp:GridView>
            </TD>
        </TR>
    </TABLE>
</asp:Content>
Avatar billede dr_chaos Nybegynder
06. september 2006 - 16:55 #12
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Vare Test page" %>

<SCRIPT runat=server>

    protected void AccessDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {

    }
</SCRIPT>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <TABLE border=0 cellpadding=0 cellspacing=0 style="width: 100%; height: 100%">
        <TR>
            <TD style="width: 1068px; height: 49px; text-align: right" valign=top>
                <SPAN style="font-size: 10pt; font-family: Verdana">
                    <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/webshop.mdb"
                        SelectCommand="SELECT * FROM [Kategorier]" OnSelecting=AccessDataSource1_Selecting UpdateCommand="UPDATE Kategorier SET  Kategorinavn =? WHERE KategoriId =? ">
                    </asp:AccessDataSource>
                    &nbsp;&nbsp; &nbsp;&nbsp;</SPAN><SPAN
                    style="font-size: 10pt; font-family: Verdana"> </SPAN>
                </TD>
        </TR>
        <TR>
            <TD style="width: 1068px; height: 349px" valign=top>
                <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                    AutoGenerateColumns="False" CellPadding="4" DataKeyNames="KategoriId" DataSourceID="AccessDataSource1"
                    ForeColor="#333333" GridLines="None" AutoGenerateDeleteButton=True AutoGenerateEditButton=True AutoGenerateSelectButton=True>
                    <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <Columns>
                        <asp:BoundField DataField="KategoriId" HeaderText="KategoriId" InsertVisible="False"
                            ReadOnly="True" SortExpression="KategoriId" />
                        <asp:BoundField DataField="Kategorinavn" HeaderText="Kategorinavn" SortExpression="Kategorinavn" />
                        <asp:CommandField />
                        <asp:CommandField ShowSelectButton="True" />
                    </Columns>
                    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                    <EditRowStyle BackColor="#999999" />
                    <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                    <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                </asp:GridView>
            </TD>
        </TR>
    </TABLE>
</asp:Content>
Avatar billede zulukrigeren Nybegynder
06. september 2006 - 17:48 #13
HEEEEEYYY Dr.Chaos... Det virker nu med den kode.... PERFEKT!
satte du bare ? efter = og så var det det?
Smid et svar og du får dine point!
Avatar billede dr_chaos Nybegynder
06. september 2006 - 17:59 #14
og fjernede update parametrene.
når du har et bound field skal du ikke tilføje updateparametre.
og ændrede dit update sætning lidt med en where
svar :)
Avatar billede zulukrigeren Nybegynder
06. september 2006 - 18:31 #15
Takker for hjælpen! :o)
Avatar billede dr_chaos Nybegynder
06. september 2006 - 18:41 #16
np :)
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