none
ObjectDataSource 'X" não pôde localizar um método não genérico 'metodo' que tenha parâmetros: 'Variavel' RRS feed

  • Pergunta

  • Estou desenvolvendo um E-Commerce e tendo problema na Criação de uma tabela de gerenciamento de produtos estou usando uma gridView e um FormView pra fazer as alterações mas estou com esse problema qdo tento excutar a função ele da esse erro de metodos não sei oque fazer 
    segunda-feira, 3 de dezembro de 2012 16:49

Respostas

  • Descobri O problema Agora .. na Vdd o problema não estava nas minhas Variaveis ou nos parametros que eu estava usando e Sim num controlador do OBjectDataSource Chamado "OldValuesParameterFormatString"  o problema acontece qdo vc deixa como esta no exemplo abaixo. "orginal_{0}" é só tirar o "original_" e deixar só "{0}" e TA-DÁ problema Resolvido sem mais erros de metodos não-Genéricos  . Galera Obrigado Pelo Apoio . ^^ 


    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"

    InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"

    TypeName="PaintingsTableAdapters.proc_PaintingsLoadAllTableAdapter" UpdateMethod="Update">

     


    quarta-feira, 5 de dezembro de 2012 16:49

Todas as Respostas

  • posta ai o codigo da sua função, pelo erro sua função tem um parametro que vc não esta passando

    Junior

    segunda-feira, 3 de dezembro de 2012 17:16
  •  <asp:GridView ID="grdProdutos" runat="server" AutoGenerateColumns="False" 
                    DataSourceID="dsProdutos" Height="16px" Width="539px" 
                    onselectedindexchanged="grdProdutos_SelectedIndexChanged" 
                    DataKeyNames="Idproduto">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:LinkButton ID="lnkEdit" runat="server" CommandName="Select">Editar</asp:LinkButton>
                                &nbsp;/
                                <asp:LinkButton ID="lnkExcluir" runat="server" CommandName="Delete">Excluir</asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:BoundField DataField="Idproduto" HeaderText="Cod" 
                            SortExpression="Idproduto" />
                        <asp:BoundField DataField="Titulo" HeaderText="Nome" 
                            SortExpression="Titulo" />
                        <asp:BoundField DataField="Descricao" HeaderText="Descricao" 
                            SortExpression="Descricao" />
                        <asp:BoundField DataField="Preco" HeaderText="Preco" HtmlEncode="false" DataFormatString="{0:c}" SortExpression="Preco" />
                        <asp:BoundField DataField="TituloCategoria" HeaderText="Categoria" 
                            SortExpression="TituloCategoria" />
                    </Columns>
                </asp:GridView>



                <asp:ObjectDataSource ID="dsProdutos" runat="server" DeleteMethod="Delete" 
                    InsertMethod="InsertProdutos"  SelectMethod="SelectAllProdutos" 
                    TypeName="Tmedia.Ecommerce.Produtos" 
            OldValuesParameterFormatString="" UpdateMethod="UpdateProdutos">
                    <DeleteParameters>
                        <asp:Parameter Name="idProduto" Type="Int32" />
                    </DeleteParameters>
                    <UpdateParameters>
                        <asp:Parameter Name="idProduto" Type="Int32" />
                        <asp:Parameter Name="idcategoria" Type="Int32" />
                        <asp:Parameter Name="titulo" Type="String" />
                        <asp:Parameter Name="desc" Type="String" />
                        <asp:Parameter Name="preco" Type="Decimal" />
                        <asp:Parameter Name="imgurl" Type="String" />
                    </UpdateParameters>
                    <InsertParameters>
                        <asp:Parameter Name="idcategoria" Type="Int32" />
                        <asp:Parameter Name="titulo" Type="String" />
                        <asp:Parameter Name="desc" Type="String" />
                        <asp:Parameter Name="preco" Type="Decimal" />
                        <asp:Parameter Name="imgurl" Type="String" />
                    </InsertParameters>
                </asp:ObjectDataSource>

                <br />
                <br />
                <asp:FormView ID="FormView1" runat="server" DataSourceID="dsEditProdutos" 
                    DefaultMode="Edit" DataKeyNames="Idproduto" Height="102px" Width="203px">
                    <EditItemTemplate>
                        Idproduto:
                        <asp:TextBox ID="IdprodutoTextBox" runat="server" 
                            Text='<%# Bind("Idproduto") %>' />
                        <br />
                        Idcategoria:
                        <asp:TextBox ID="IdcategoriaTextBox" runat="server" 
                            Text='<%# Bind("Idcategoria") %>' />
                        <br />
                        Titulo:
                        <asp:TextBox ID="TituloTextBox" runat="server" Text='<%# Bind("Titulo") %>' />
                        <br />
                        Descricao:
                        <asp:TextBox ID="DescricaoTextBox" runat="server" 
                            Text='<%# Bind("Descricao") %>' />
                        <br />
                        Preco:
                        <asp:TextBox ID="PrecoTextBox" runat="server" Text='<%# Bind("Preco") %>' />
                        <br />
                        Imageurl:
                        <asp:TextBox ID="ImageurlTextBox" runat="server" 
                            Text='<%# Bind("Imageurl") %>' />

                        <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
                            CommandName="Update" Text="Atualizar" />
                        &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
                            CausesValidation="False" CommandName="Cancel" Text="Cancelar" />
                    </EditItemTemplate>
                </asp:FormView>
                <asp:ObjectDataSource ID="dsEditProdutos" runat="server" 
                   SelectMethod="SelectProdutos" 
                    TypeName="Tmedia.Ecommerce.Produtos" UpdateMethod="UpdateProdutos"          >
                    <UpdateParameters>
                        <asp:Parameter Name="idProduto" Type="Int32" />
                        <asp:Parameter Name="idcategoria" Type="Int32" />
                        <asp:Parameter Name="titulo" Type="String" />
                        <asp:Parameter Name="desc" Type="String" />
                        <asp:Parameter Name="preco" Type="Decimal" />
                        <asp:Parameter Name="imgurl" Type="String" />
                    </UpdateParameters>
                    <SelectParameters>
                        <asp:ControlParameter ControlID="grdProdutos" Name="IdProduto" 
                            PropertyName="SelectedValue" Type="Int32" />
                    </SelectParameters>
                </asp:ObjectDataSource>



    SP de EXLCUSAO

    (
    @id  int 
    )

    AS BEGIN
    Delete Produtos where IdProduto=@id

    END

    RETURN



    SP EDICAO 

    ALTER PROCEDURE [dbo].[sp_UpdateProdutos] 
    (
    @idProduto INT,
    @idCategoria INT,
    @Titulo NVarchar(256),
    @Desc nvarchar(max),
    @Preco Money,
    @imgURL NVarchar(256)
    )
    AS BEGIN

    UPDATE  Produtos SET
    IdCategoria = @idCategoria,
    titulo = @Titulo,
    descricao = @Desc,
    preco = @Preco,
    imageUrl = @imgURL
    WHERE
    IdProduto = @idProduto

    END

                                     
    segunda-feira, 3 de dezembro de 2012 18:37
  • onde esta dando o erro ?


    Junior

    segunda-feira, 3 de dezembro de 2012 19:38
  • qdo eu clico nos linkbuttons pra executar qualquer funçaõ tipo "editar" ou excluir da esse erro mudando somente os nomes dos parametros 

    ObjectDataSource 'dsProdutos' não pôde localizar um método não genérico 'Delete' que tenha parâmetros: idProduto, .

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.InvalidOperationException: ObjectDataSource 'dsProdutos' não pôde localizar um método não genérico 'Delete' que tenha parâmetros: idProduto, .

    Erro de Origem: 
    Exceção não tratada foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

    segunda-feira, 3 de dezembro de 2012 19:56
  • Dentro de sua Tmedia.Ecommerce.Produtos

    está faltando o método Delete, ou pelo menos ele existe mas os parametros necessários, no caso idProduto, está faltando.

    segunda-feira, 3 de dezembro de 2012 20:34
  • olha eu acabei de alterar o nome dos meus parametros e mesmo assim da o mesmo erro uma coisa estranha é que ele só apresenta esse erro qdo eu defino o DataKeyNames ="idproduto", se eu deixo ele vazio ele não faz nada.

     }
            /// <summary>
            /// DELETA UM PRODUTO
            /// </summary>
            /// <param name="ProductId"></param>
            [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]

            public static void Delete(int idproduto)
            {
                // Inicializa Comandos
                SqlConnection con = new SqlConnection(_conString);
                SqlCommand cmd = new SqlCommand("sp_DelProdutos", con);
                cmd.CommandType = CommandType.StoredProcedure;

                // Inicializa parametros
                cmd.Parameters.AddWithValue("@Id", idproduto);

                // Execute comandos
                using (con)
                {
                    con.Open();
                    cmd.ExecuteNonQuery();
                }
            }
    • Editado Eric Vieira segunda-feira, 3 de dezembro de 2012 20:55
    segunda-feira, 3 de dezembro de 2012 20:51
  • É case sensitive.

    idProduto != idproduto

    segunda-feira, 3 de dezembro de 2012 21:38
  • Danimar já troquei deixei todas as variaveis com o mesmo nome e mesmo assim continua com o erro.

    Erro de Servidor no Aplicativo '/ProjetoMirian'.

    ObjectDataSource 'srcProdutos' não pôde localizar um método não genérico 'DeleteProdutos' que tenha parâmetros: idproduto, .

    Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.InvalidOperationException: ObjectDataSource 'srcProdutos' não pôde localizar um método não genérico 'DeleteProdutos' que tenha parâmetros: idproduto, .

    Erro de Origem: 
    Exceção não tratada foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

    Rastreamento de Pilha: 
    [InvalidOperationException: ObjectDataSource 'srcProdutos' não pôde localizar um método não genérico 'DeleteProdutos' que tenha parâmetros: idproduto, .]
       System.Web.UI.WebControls.ObjectDataSourceView.GetResolvedMethodData(Type type, String methodName, IDictionary allParameters, DataSourceOperation operation) +1117026
       System.Web.UI.WebControls.ObjectDataSourceView.ExecuteDelete(IDictionary keys, IDictionary oldValues) +504
       System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +89
       System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +714
       System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +869
       System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
       System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
       System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
    

    segunda-feira, 3 de dezembro de 2012 22:57
  • Bom agora ta dando erro DeleteProdutos, e o seu método antes estava apenas Delete.

    Mas assim, a mensagem é bem clara quanto ao erro. 

    Lembre-se tem que ter todos os parâmetros e o nome certinho, e os tipos tem que estar certos.

    segunda-feira, 3 de dezembro de 2012 23:00
  • Descobri O problema Agora .. na Vdd o problema não estava nas minhas Variaveis ou nos parametros que eu estava usando e Sim num controlador do OBjectDataSource Chamado "OldValuesParameterFormatString"  o problema acontece qdo vc deixa como esta no exemplo abaixo. "orginal_{0}" é só tirar o "original_" e deixar só "{0}" e TA-DÁ problema Resolvido sem mais erros de metodos não-Genéricos  . Galera Obrigado Pelo Apoio . ^^ 


    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"

    InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"

    TypeName="PaintingsTableAdapters.proc_PaintingsLoadAllTableAdapter" UpdateMethod="Update">

     


    quarta-feira, 5 de dezembro de 2012 16:49