Usuário com melhor resposta
ObjectDataSource 'X" não pôde localizar um método não genérico 'metodo' que tenha parâmetros: 'Variavel'

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
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">
- Marcado como Resposta Seilor Bonancio JuniorModerator sexta-feira, 7 de dezembro de 2012 12:49
Todas as Respostas
-
-
<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>
/
<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" />
<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 -
-
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.
-
-
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
-
-
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
-
-
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">
- Marcado como Resposta Seilor Bonancio JuniorModerator sexta-feira, 7 de dezembro de 2012 12:49