Error: Procedure expects parameter '@params' of type 'ntext/nchar/nvarchar'.
Aim: Pass back a value based on Sql
Code: (VB.NET)
With command
.Connection = connection
.CommandText = "spAuditLoggerSystemUser" 'include audit names
.CommandType = CommandType.StoredProcedure
.Parameters.Clear()
.Parameters.AddWithValue("@EmployeeID", CInt(vEmployeeID))
Dim parameter As SqlParameter = command.Parameters.Add("@LineID", SqlDbType.Int)
parameter.Direction = ParameterDirection.Output
command.ExecuteNonQuery()
vLineID = command.Parameters("@LineID").Value.ToString()
.ExecuteNonQuery()
End With
Stored Procedure:
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spAuditLoggerSystemUser]
(
@LineID INT OUTPUT,
@EmployeeID int
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = 'SELECT ID
FROM taylorwoodrow.dbo.TblEmployeeDetails WHERE EmployeeID = ''' + (LTRIM(RTRIM(@EmployeeID))) + '''';
EXEC sp_executesql @SQL,@LineID OUT;
PRINT @LineID
END
If do the following I return a (correct) print value:
DECLARE @SQL NVARCHAR(MAX)
DECLARE @EmployeeID AS INT
DECLARE @LineID NVARCHAR(MAX)
SET @EmployeeID = '1213'
SELECT @SQL = 'SELECT ID
FROM DB.dbo.TblEmployeeDetails WHERE EmployeeID = ''' + (LTRIM(RTRIM(@EmployeeID))) + '''';
EXEC sp_executesql @SQL,@LineID OUT;
PRINT @LineID
I used Execute stored procedure with an Output parameter? as a reference