Avatar billede jps6kb Novice
22. oktober 2006 - 12:54 Der er 4 kommentarer og
1 løsning

GridView update med SqlDataSource

Okay, nu har jeg siddet med det i tre dage og .. er så småt ved at eksplodere..

Jeg kan få delete og select til at virke på mit gridview, men update virker ikke. Der kommer ingen fejl, den gør bare ikke noget som helst.
Jeg skriver et nyt navn i feltet, klikker update og så.. står den gamle værdi der.

Hvad sker der? :O




    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
        DataKeyNames="id,name" DataMember="DefaultView" DataSourceID="SqlDataSource1"
        Width="548px">
        <Columns>
            <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
            <asp:BoundField DataField="path" HeaderText="path" ReadOnly="True" SortExpression="path" />
            <asp:BoundField DataField="page" HeaderText="page" ReadOnly="True" SortExpression="page" />
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                SortExpression="id" />
            <asp:CommandField ShowEditButton="True" />
            <asp:CommandField ShowDeleteButton="True" />
        </Columns>
    </asp:GridView><br />
   
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>"
        DeleteCommand="DELETE FROM documents WHERE id = @id" SelectCommand="SELECT * FROM [Documents]"
        UpdateCommand="UPDATE [documents] SET name = @name WHERE id = @id">
        <UpdateParameters>
            <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedValue" />
            <asp:ControlParameter ControlID="GridView1" DefaultValue="" Name="name" />
        </UpdateParameters>
    </asp:SqlDataSource>
Avatar billede sneakraid Nybegynder
22. oktober 2006 - 14:55 #1
Sådan her har jeg fået det til at virke hos mig.

            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>"
                DeleteCommand="DELETE FROM documents WHERE id = @id" SelectCommand="SELECT * FROM [Documents]"
                UpdateCommand="UPDATE [documents] SET name = @name WHERE id = @id">
                <UpdateParameters>
                    <asp:Parameter Name="id" Type="Int32" />
                    <asp:Parameter Name="name" Type="String" />
                </UpdateParameters>
                <DeleteParameters>
                    <asp:Parameter Name="id" Type="Int32" />
                </DeleteParameters>
            </asp:SqlDataSource>
Avatar billede jps6kb Novice
22. oktober 2006 - 20:05 #2
Det gav ikke noget, desværre. Stadig samme opførsel på gridview.
Avatar billede snepnet Nybegynder
22. oktober 2006 - 21:00 #3
Datasource kontrollen kan i flere tilfælde selv udlede parametre... Prøv at nøjes med at have id som datakeyname, og fjern dine parameters ... Brug eventuelt nedenstående som eksempel (CarId er nøgle på tabellen).

<asp:GridView
    ID="GridView1"
    runat="server"
    AutoGenerateColumns="False"
    DataKeyNames="CarId"
    DataSourceID="SqlDataSource1"
    EmptyDataText="There are no data records to display.">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
        <asp:BoundField DataField="CarId" HeaderText="CarId" ReadOnly="True" SortExpression="CarId" />
        <asp:BoundField DataField="Brand" HeaderText="Brand" SortExpression="Brand" />
        <asp:BoundField DataField="Cubics" HeaderText="Cubics" SortExpression="Cubics" />
        <asp:BoundField DataField="MaxSpeed" HeaderText="MaxSpeed" SortExpression="MaxSpeed" />
        <asp:BoundField DataField="TeamName" HeaderText="TeamName" SortExpression="TeamName" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource
    ID="SqlDataSource1"
    runat="server"
    ConnectionString="<%$ ConnectionStrings:FomulaOneConnectionString1 %>"
    DeleteCommand="DELETE FROM [Cars] WHERE [CarId] = @CarId"
    InsertCommand="INSERT INTO [Cars] ([Brand], [Cubics], [MaxSpeed], [TeamName]) VALUES (@Brand, @Cubics, @MaxSpeed, @TeamName)"
    ProviderName="<%$ ConnectionStrings:FomulaOneConnectionString1.ProviderName %>"
    SelectCommand="SELECT [CarId], [Brand], [Cubics], [MaxSpeed], [TeamName] FROM [Cars]"
    UpdateCommand="UPDATE [Cars] SET [Brand] = @Brand, [Cubics] = @Cubics, [MaxSpeed] = @MaxSpeed, [TeamName] = @TeamName WHERE [CarId] = @CarId">
</asp:SqlDataSource>

Du kan lige prøve det - og se om det funger.

Mvh
Avatar billede jps6kb Novice
22. oktober 2006 - 21:54 #4
Nææeh.. det virker jo :p Det er bare alle tiders. Tak for det. Smider du lige et svar?

Og sneakraid, tak for forsøget.
Avatar billede snepnet Nybegynder
22. oktober 2006 - 22:31 #5
Kommer her
Mvh
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