急救.学习MSDN示例"使用 ASP.NET 2.0 ObjectDataSource 控件"出现的问题
址:
http://www.microsoft.com/china/msdn/library/webservices/asp.net/objectdatasource.mspx
我原原本本的按照教程的方法操作
在productInfo3.cs示例中,对网格中的数据进行更改,会出现
“/030301”应用程序中的服务器错误。
--------------------------------------------------------------------------------
ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“UpdateProduct”: ProductName, UnitPrice, ProductId
为什么,Help ME!!!!
问题点数:30、回复次数:4Top
1 楼nameone(过客)回复于 2006-03-04 10:46:39 得分 0
UPTop
2 楼chjlcn(http://www.chenjiliang.com)回复于 2006-03-04 10:51:15 得分 0
我也碰到相似的问题,有大部分源码。大家也帮我看看啊。谢谢!
楼主你解决了吗?告诉我怎样搞掂的啊。好不?
http://community.csdn.net/Expert/topic/4592/4592135.xml?temp=.1817591Top
3 楼y2m()回复于 2006-03-16 18:39:40 得分 0
"有一个参数需要额外进行讨论。我们需要将被更新的行的 ProductID 列的值传递给 UpdateProduct 方法由于没有在 GridView 中显示 ProductID 列,我们必须将 ProductID 列分配给 GridView 控件的 DataKeyNames 属性。这个列的名称变为 original_productId,而不是 productId,因为我们正在向 update 方法传递 ProductID 列的未编辑版本。"
原文里面不是已经说了吗?
你需要传ProductName, UnitPrice, orginal_ProductId(而不是ProductID,其实就是改个名字, 代表ProductID 列的未编辑版本)这三个参数到存储过程. 你用VS2005的objectDatasource的向导创建一个存储过程就知道是怎么一回事了.
Top
4 楼y2m()回复于 2006-03-17 08:31:48 得分 0
错了. 是VS2005的dataset的向导. 这是一个update的存储过程.
CREATE PROCEDURE dbo.sp_Admin_UpdateItem
(
@CName varchar(50),
@EName varchar(50),
@Price money,
@Original_ItemID varchar(10)
)
AS
SET NOCOUNT OFF;
UPDATE [Admin_Items] SET [CName] = @CName, [EName] = @EName, [Price] = @Price WHERE (([ItemID] = @Original_ItemID))
GO
Top




