Простой сценарий: через VB.NET я вызываю хранимую процедуру следующим образом:
Public Shared Function NameToCallStoredProcedure(ByVal Interkey As Integer) As DataSet
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim sqlCommand As String = "dbo.myStoredProcedureName"
Dim DbCommandObject As DbCommand = db.GetSqlStringCommand(sqlCommand)
db.AddInParameter(DbCommandObject, "InterKey", DbType.Int64, Interkey)
Return db.ExecuteDataSet(DbCommandObject)
End Function
Вот вся хранимая процедура:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[myStoredProcedureName]
@InterKey INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Err INT
SELECT
mfg.FuncID,
mi.SenderID, mi.ReceiverID,
mfg.GroupKey,
mi.InterDate, mi.ControlNo, mi.InterTime
FROM
table1 mfg, table2 mi
WHERE
mfg.Interkey = mi.Interkey
AND mfg.Interkey = @InterKey
SET @Err = @@Error
RETURN @Err
END
Когда мой код VB вызываетВ хранимой процедуре я получаю сообщение об ошибке:
System.Data.SqlClient.SqlException: «Процедура или функция« myStoredProcedure »ожидает параметр« @InterKey », который не был предоставлен. '
Я трижды проверил, что имена переменных правильные.Я использовал SQL Server Profiler, и он даже говорит, что при вызове хранимой процедуры переменная с именем «InterKey» передается со значением 1. Я в своем уме.ПОЖАЛУЙСТА, кто-нибудь, помогите мне.Заранее спасибо.