As per the comment above by Richard, the Report cannot locate a parameter with the name "Deal_Date"
In my opinion you are better off looping through the Parameter fields and checking the name before you populate, the following will work;
If(crRpt.DataDefinition.ParameterFields.Count > 0) Then
For Each rptParam As ParameterFieldDefinition in crRpt.DataDefinition.ParameterFields
If(rptParam.Reportname = "") Then
Dim strName As String = rptParam.ParameterFieldName
If(strName = "Correct Name") Then
Dim objVal as object = "My Value"
crRpt.SetparameterValue(rptParam.ParameterFieldName, objVal)
End If
End If
Next
End If
This will also help when debugging as you can actually see what the Report Parameter name is.
Kind Regards