Gridview med SqlDataSource. Update virker ikke.
HejSom 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.