Geo*_*kos 3 vb.net sql-server ado.net stored-procedures
使用ASP.NET 4.51和VS 2013尝试使用存储过程填充数据表时出现以下错误.
System.AccessViolationException: Attempted to read or write protected memory
Run Code Online (Sandbox Code Playgroud)
我已将错误跟踪到以下内容:
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.
Run Code Online (Sandbox Code Playgroud)
这是我的存储过程定义:
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
Run Code Online (Sandbox Code Playgroud)
我发现了问题,错误是由以下原因造成的:
存储过程已将其中一个参数定义为bigint
它应该是数据库表模式中定义的int.
我似乎将Integer值传递给表适配器Stored Procedure期望Bigint导致AccessViolationException错误.
我希望这些信息有助于其他人.