Avatar billede Slettet bruger
09. november 2009 - 21:40 Der er 1 kommentar og
1 løsning

Gridview med SqlDataSource. Update virker ikke.

Hej

Som overskriften siger forsøger jeg at lave et gridview med sqldatasource fra mysql. Alt select,delete kan jeg få til at fungere men update spiller ikke rigtigt, da den bytter om på værdierne f.eks. får jeg fejlen: Incorrect integer value: 'Spring 2011' for column 'id' at row 1.

Jeg bruger mysql som indeholder en storedprocedure.

Koden er således:

aspx siden:
    <asp:GridView ID="GridViewCollections" DataSourceID="SqlDataSourceUpdateCollection"
        DataKeyNames="id" SkinID="CSSTheme" AutoGenerateColumns="false" runat="server">
        <Columns>
            <asp:BoundField DataField="name" HeaderText="Kollektion" SortExpression="name" DataFormatString="{0}" />
            <asp:BoundField DataField="priority" HeaderText="Prioritet" SortExpression="priority"
                DataFormatString="{0}" />
            <asp:CommandField CancelText="Fortryd" DeleteText="Slet" EditText="Rediger" ShowEditButton="True" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSourceUpdateCollection" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>"
        ProviderName="<%$ ConnectionStrings:DBConnectionString.ProviderName %>"
        SelectCommand="getcollection" SelectCommandType="StoredProcedure" UpdateCommand="updateCollection"
        UpdateCommandType="StoredProcedure">
        <UpdateParameters>
            <asp:Parameter Name="id" Type="Int32" />
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="priority" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>

Mysql StoredProcedure:
DROP PROCEDURE `getcollection`//
CREATE DEFINER=`dbuser`@`%` PROCEDURE `getcollection`()
BEGIN
  select id,name,priority from collection ORDER BY name;
END

og den anden:

DROP PROCEDURE `updateCollection`//
CREATE DEFINER=`dbuser`@`%` PROCEDURE `updateCollection`(
  IN `id` int,
  IN `name` char(100),
  IN `priority` int
)
BEGIN
  UPDATE collection SET collection.name = name, collection.priority = priority WHERE collection.id = id;
END

Jeg har forsøgt at ændre navne i storedprocedure så de ikke hed det samme, men det ændrede ikke noget.
Avatar billede Slettet bruger
09. november 2009 - 22:30 #1
Hmm, det ser ud til den er "ligeglad" med min updateparameter. Hvis jeg fjerne updateparameter gør det ingen forskel, men hvis jeg samtidig ændre rækkefølgen af mine inputs i den storedprocedure til name, priority, id så virker det fint.

Så nu er spørgsmålet hvorfor den ignorer updateparater?
Avatar billede Slettet bruger
15. marts 2010 - 14:46 #2
svar
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