Inquiridor
GridView com stored procedures: Procedure or function has too many arguments specified

Pergunta
-
Todas as Respostas
-
-
Glebe,
pela mensagem de erro, você está passando mais do que a procedure espera. Poderia colocar seu código?
Ricardo Oneda
http://oneda.mvps.org/blog -
Olá Oneda,
Olha só o meu problema maior mesmo é usando DataSet com ObjectDataSource e GridView. Eu não consigo usar os métodos de Update que estão no ObjectDataSource. Eles dão algum erro, quando uso uma StoredProcedure, dá o erro que mostrei a cima, quando uso direto do método gerado pelo DataSet dá o erro abaixo:
ObjectDataSource 'ObjectDataSource1' could not find a non-generic method 'UpdateQuery' that has parameters: ...
Como se meus parâmetros não estivessem lá.
Já olhei este tipo de erro na internet e muito falam sobre colocar a chave no gridview, depois deixar a coluna com readonly true, em fim, tudo aquilo que eu já fiz.
Fiz um modelo bem simples para ficar praticando, mascontinua dando estes erros. Vou colocar o código abaixo:
GridView
<
asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="ObjectDataSource1"> <Columns> <asp:CommandField ShowEditButton="True" /> <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" /> <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" /> <asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" /> <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" SortExpression="ContactTitle" /> <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" /> <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" /> <asp:BoundField DataField="Region" HeaderText="Region" SortExpression="Region" /> <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" /> <asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country" /> <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" /> <asp:BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax" /> </Columns> </asp:GridView>ObjectDataSource:
<
asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="DataSet1TableAdapters.CustomersTableAdapter" UpdateMethod="UpdateQuery"> <DeleteParameters> <asp:Parameter Name="Original_CustomerID" Type="String" /> <asp:Parameter Name="Original_CompanyName" Type="String" /> <asp:Parameter Name="Original_ContactName" Type="String" /> <asp:Parameter Name="Original_ContactTitle" Type="String" /> <asp:Parameter Name="Original_Address" Type="String" /> <asp:Parameter Name="Original_City" Type="String" /> <asp:Parameter Name="Original_Region" Type="String" /> <asp:Parameter Name="Original_PostalCode" Type="String" /> <asp:Parameter Name="Original_Country" Type="String" /> <asp:Parameter Name="Original_Phone" Type="String" /> <asp:Parameter Name="Original_Fax" Type="String" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="CompanyName" Type="String" /> <asp:Parameter Name="ContactName" Type="String" /> <asp:Parameter Name="ContactTitle" Type="String" /> <asp:Parameter Name="Address" Type="String" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="Region" Type="String" /> <asp:Parameter Name="PostalCode" Type="String" /> <asp:Parameter Name="Country" Type="String" /> <asp:Parameter Name="Phone" Type="String" /> <asp:Parameter Name="Fax" Type="String" /> <asp:Parameter Direction="InputOutput" Name="CustomerID" Type="String" /> </UpdateParameters> <InsertParameters> <asp:Parameter Name="CustomerID" Type="String" /> <asp:Parameter Name="CompanyName" Type="String" /> <asp:Parameter Name="ContactName" Type="String" /> <asp:Parameter Name="ContactTitle" Type="String" /> <asp:Parameter Name="Address" Type="String" /> <asp:Parameter Name="City" Type="String" /> <asp:Parameter Name="Region" Type="String" /> <asp:Parameter Name="PostalCode" Type="String" /> <asp:Parameter Name="Country" Type="String" /> <asp:Parameter Name="Phone" Type="String" /> <asp:Parameter Name="Fax" Type="String" /> </InsertParameters> </asp:ObjectDataSource>Update Gerado pelo DataSet
UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, [Address] = @Address, [City] = @City, [Region] = @Region, [PostalCode] = @PostalCode, [Country] = @Country, [Phone] = @Phone, [Fax] = @Fax WHERE [CustomerID] = @CustomerID AND [CompanyName] = @CompanyName AND [ContactName] = @ContactName AND [ContactTitle] = @ContactTitle AND [Address] = @Address AND [City] = @City AND [Region] = @Region AND [PostalCode] = @PostalCode AND [Country] = @Country AND [Phone] = @Phone AND [Fax] = @Fax
Espero que com estas informações alguém possa me ajudar.