2008-10-24 24 views

Répondre

0

Toujours pas de réponse à cette question, a fini par coulée dans les procs stockés sous-jacents.

+1

Les choses bizarres sont que lorsque vous déclarez un paramètre de rapport dans le rapport lui-même (* .rdl), il peut avoir un type comme integer, boolean, DateTime, etc, mais le constructeur ReportParameter prend seulement des chaînes. Cela signifie que les valeurs DateTime doivent être converties en chaîne, ce qui provoque des problèmes lorsque le local du serveur de rapports est différent de celui du client. –

3

Vous pouvez appeler la méthode GetReportParameters() qui retournera un tableau ReportParameter[]. Si vous parcourez chaque paramètre et regardez sa propriété Type, il indiquera s'il s'agit d'un int. La propriété Type est un enum de type ParameterTypeEnum et serait ParameterTypeEnum.Integer pour int.

1

Je voudrais essayer:

var rp = new ReportParameter("IntValue", intValue.ToString()); 
report.SetParameters(new ReportParameter[]{rp}); 
+0

Mais que se passe-t-il si le ReportParameter est de type int ... comme dans Je ne veux pas utiliser .ToString() Je veux utiliser un int. Merci – danswain

+0

Puisque ReportParameter.Value est une chaîne que vous auriez à définir un opérateur implicite pour ne pas pouvoir utiliser ToString(). –