使用ASP.NET 4.51和VS 2013尝试使用存储过程填充数据表时出现以下错误。
System.AccessViolationException: Attempted to read or write protected memory
我已将错误追踪到以下内容:
Using myDT As New DAL.mbr_MediaComments.usrsp_mbr_MediaComments_CommentorsDataTable
Using myTA As New DAL.mbr_MediaCommentsTableAdapters.usrsp_mbr_MediaComments_CommentorsTableAdapter
myTA.Fill(myDT, toMbrID, mediaID) <------System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
这是我的存储过程定义:
CREATE PROCEDURE [dbo].[usrsp_mbr_MediaComments_Commentors]
-- Add the parameters for the stored procedure here
@mbrID int = 0,
@mediaID bigint = 0
AS
BEGIN
//my query code
END
答案 0 :(得分:6)
我发现了问题,错误是由以下原因引起的:
存储过程已将其中一个参数定义为 bigint
它应该是 int ,就像在数据库表模式中定义的一样。
我似乎将Integer值传递给表适配器Stored Procedure期望Bigint会导致AccessViolationException错误。
我希望这些信息有助于其他人。