.Net SqlClient Data Provider

As vezes estou tendo o erro .Net SqlClient Data Provider : The parameterized query ‘(@bMatricula nvarchar(4000))
para executar a query abaixo.
SELECT
FUN.DFFUNCRACHA,
CASE’ expects the parameter ‘@bMatricula’, which was not supplied.
SELECT
FUN.DFFUNCRACHA,
CASE
WHEN ((SALDOBCO.S_P /60)+(3FUN.DFFUNCHCDIA))-ISNULL(FUA.DIAS_BCO,0) >=FUN.DFFUNCHCDIA THEN ‘PROCEDENTE’
WHEN ((3
FUN.DFFUNCHCDIA)+(SALDOBCO.S_N /60))-ISNULL(FUA.DIAS_BCO,0) >=FUN.DFFUNCHCDIA THEN ‘PROCEDENTE’
ELSE ‘IMPROCEDE’
END VERIFICA_PROCEDENCIA
FROM FORPONTO.PFUNFPTO FUN (NOLOCK)
LEFT JOIN (SELECT
[DATA_FOTO]
,[MATRICULA]
,SUM(ISNULL([SALDO_VENCENDO_BH_POSITIVO],0)) S_P
,SUM(ISNULL([SALDO_VENCENDO_BH_NEGATIVO],0)) S_N
FROM [ForPonto].[dbo].VW_PONTO_SALDO_BH_FUNCIONARIO_DIARIO
WHERE DATA_FOTO=CAST(GETDATE() AS DATE)
GROUP BY MATRICULA, DATA_FOTO
) AS SALDOBCO
ON RIGHT(FUN.DFFUNCRACHA,6) = SALDOBCO.MATRICULA
LEFT JOIN(SELECT DFFUNCRACHA,
SUM(DATEDIFF(DAY, DFFUAINICIO,DFFUATERMINO)+1)DIAS_BCO
FROM FORPONTO.PFUAFPTO (NOLOCK)
WHERE DFMTVCODIGO=‘103’
AND (CAST (GETDATE() AS DATE) BETWEEN DFFUAINICIO AND DFFUATERMINO
OR CAST(GETDATE() AS DATE) <= DFFUAINICIO)
GROUP BY DFFUNCRACHA) AS FUA
ON FUN.DFFUNCRACHA=FUA.DFFUNCRACHA
WHERE FUN.DFFUNCRACHA =@bMatricula

alguem consegue me ajudar?

Look at this
https://webcache.googleusercontent.com/search?q=cache:fXYkODwaRYUJ:https://www.cnblogs.com/wenjieyatou/p/5620623.html+&cd=8&hl=zh-CN&ct=clnk&gl=jp

https://webcache.googleusercontent.com/search?q=cache:ax51RCpQoAEJ:https://stackoverrun.com/cn/q/8153+&cd=3&hl=zh-CN&ct=clnk&gl=jp

CreateFromDirectory