'System.AccessViolationException' 从 VB.net Express 2013 访问 SQL 查询
'System.AccessViolationException' Accessing SQL Query from VB.net Express 2013
我在从 VB 调用 SQL 存储过程时遇到一个奇怪的问题。
我在 SQL 上创建了一个存储过程。代码片段如下:
ALTER PROCEDURE [dbo].[PE0010_InsertDPW]
@DailyWashCycle AS INT,
@PumpNo AS INT,
@WashDurationSecs AS INT,
@Result AS INT OUTPUT
AS
BEGIN
SET @Result= 1
--All other code commented out
END
在VB 方面,我创建了一个link 到SQL 和数据集,其中包含此存储过程。实际调用存储过程的VB代码如下:
Dim DailyCycle As Integer = 0
Dim PumpNo As Integer = 0
Dim Duration As Integer = 0
Dim res As Integer = 0
Dim DBQueries As New dsProcessDBTableAdapters.QueriesTableAdapter
DBQueries.PE0010_InsertDPW(DailyCycle, PumpNo, Duration, res)
我收到以下消息:
An unhandled exception of type 'System.AccessViolationException' occurred in Data Systems Manager.exe
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
但是,如果我在 SQL 上注释掉除 @Result 之外的任何变量,并使用 3 个变量更新 VB 和 运行 上的存储过程,那么它就可以正常工作。
如果我用所有 4 个变量从 SQL 执行它,SQL 程序工作正常,所以我的 link 一定有问题或其他什么。在创建 link 时,我尝试将 .NET Framework 数据提供程序从 SQL 服务器更改为 OLE DB。出现同样的问题。尝试关闭所有内容并再次打开。没有区别。
有没有人遇到同样的问题?我现在完全没主意了。
电脑:
英特尔酷睿 i5-3550 CPU @3.30GHz,
12GB 内存
好的,我已经找到解决问题的方法,但我仍然不知道为什么它给我带来了这么多麻烦。
我为 .NET Framework 4 编译了我的项目,以便与我工作中的所有系统兼容。这在过去从来都不是问题,但当我选择 .NET 4 时,即使是新项目也会以同样的方式失败。我必须安装 .NET Framework 4.5.2 (KB2901907),然后在系统重启后一切又恢复正常。即使对于这个以 .NET 4 为目标的项目(没有进行其他更改)。很奇怪,因为系统重启是我尝试的第一件事。似乎是某种 .NET Framework 问题。
我在从 VB 调用 SQL 存储过程时遇到一个奇怪的问题。
我在 SQL 上创建了一个存储过程。代码片段如下:
ALTER PROCEDURE [dbo].[PE0010_InsertDPW]
@DailyWashCycle AS INT,
@PumpNo AS INT,
@WashDurationSecs AS INT,
@Result AS INT OUTPUT
AS
BEGIN
SET @Result= 1
--All other code commented out
END
在VB 方面,我创建了一个link 到SQL 和数据集,其中包含此存储过程。实际调用存储过程的VB代码如下:
Dim DailyCycle As Integer = 0
Dim PumpNo As Integer = 0
Dim Duration As Integer = 0
Dim res As Integer = 0
Dim DBQueries As New dsProcessDBTableAdapters.QueriesTableAdapter
DBQueries.PE0010_InsertDPW(DailyCycle, PumpNo, Duration, res)
我收到以下消息:
An unhandled exception of type 'System.AccessViolationException' occurred in Data Systems Manager.exe
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
但是,如果我在 SQL 上注释掉除 @Result 之外的任何变量,并使用 3 个变量更新 VB 和 运行 上的存储过程,那么它就可以正常工作。
如果我用所有 4 个变量从 SQL 执行它,SQL 程序工作正常,所以我的 link 一定有问题或其他什么。在创建 link 时,我尝试将 .NET Framework 数据提供程序从 SQL 服务器更改为 OLE DB。出现同样的问题。尝试关闭所有内容并再次打开。没有区别。
有没有人遇到同样的问题?我现在完全没主意了。
电脑: 英特尔酷睿 i5-3550 CPU @3.30GHz, 12GB 内存
好的,我已经找到解决问题的方法,但我仍然不知道为什么它给我带来了这么多麻烦。
我为 .NET Framework 4 编译了我的项目,以便与我工作中的所有系统兼容。这在过去从来都不是问题,但当我选择 .NET 4 时,即使是新项目也会以同样的方式失败。我必须安装 .NET Framework 4.5.2 (KB2901907),然后在系统重启后一切又恢复正常。即使对于这个以 .NET 4 为目标的项目(没有进行其他更改)。很奇怪,因为系统重启是我尝试的第一件事。似乎是某种 .NET Framework 问题。