web-dev-qa-db-fra.com

Obtenir un "un ou plusieurs paramètres requis pour exécuter le rapport n'ont pas été spécifiés" erreur

Je construis un rapport dans lequel je souhaite accepter deux valeurs de l'utilisateur, les intégrer dans une requête et rechercher les données associées à ces entrées.

Par exemple, si vous disposiez d'une liste d'employés, de mesures de performance et de valeurs associées à ceux-ci; ensuite, l'utilisateur sélectionnerait un nom d'employé/une mesure de performance et obtiendrait les informations de scoring sur cet employé pour cette mesure.

J'ai deux paramètres, chacun étant renseigné à partir de requêtes SQL obtenant une liste distincte de noms d'employés et de mesures, et un tableau ci-dessous qui extrait des informations basées sur ~ 'WHERE name = @Name AND measure = @Measure' Aperçu 'pour exécuter le rapport localement, le message d'erreur suivant s'affiche: "un ou plusieurs paramètres requis pour exécuter le rapport n'ont pas été spécifiés"

Je sais que les paramètres fonctionnent correctement car je peux insérer leurs valeurs directement dans une zone de texte et les valeurs sont correctement renseignées. De plus, si je modifie la requête pour n'accepter qu'un paramètre (par exemple, WHERE measure = @Measure), la requête fonctionne. 

Je ne comprends pas pourquoi cette erreur se produit car je sais que mes paramètres fonctionnent et sont correctement renseignés.

17
user2061929

J'ai rencontré ce problème dans .NET 4.0 à l'aide de rapports locaux (dans des fichiers .rdlc), lorsque l'une des valeurs du paramètre contenait une chaîne vide. Bien que le réglage du paramètre soit correct:

  report.SetParameters(
            new List<ReportParameter> {
                new ReportParameter("Title", Messages.Title),
                new ReportParameter("SubTitle", Messages.Subtitle))
            }
            );

Cela ne fonctionnait que tant que les deux paramètres contenaient réellement des caractères, sinon l'exception mentionnée était levée.

7
Marcel

Cela m'a causé de nombreuses heures de douleur. Il s'avère que cela a à voir avec l'utilisation d'un ensemble de données partagé . Intégrez plutôt l'ensemble de données dans votre rapport et tout fonctionnera bien.

5
chris stevens

Cette erreur est provoquée lorsque vous A. Le paramètre est mal orthographié dans le rapport réel. Cela signifie que la requête attend @Name mais que le rapport transmet @Names (ou une autre orthographe). 

ou

b) Est-il possible que vous tentiez d'exécuter le rapport avec une valeur par défaut sur le paramètre NULL pour @Name mais que la procédure stockée requiert une valeur réelle?

Cela peut se produire si vous créez le rapport dans Visual Studio et donnez au paramètre @Name une valeur par défaut de (null). Essayez de supprimer la valeur par défaut ou de vous assurer que le paramètre @Name a une valeur réelle, même si elle est simplement ''.

3
user2121425

J'ai eu le même problème. Un problème s'est produit lorsque vous utilisez SharedDataSource avec des paramètres devant avoir une valeur null. Si vous utilisez la même requête dans la source de données intégrée, il n'y a pas de problème. 

Contrairement aux sources de données incorporées, vous devez définir si les paramètres utilisés dans l'interrogation de sources de données partagées sont autorisés à avoir la valeur null, comme indiqué dans la capture d'écran ici. Dans mon cas, il y a deux paramètres dans la requête de la source de données partagée, qui peuvent avoir une valeur null. 

 Set Allow Null for SharedDataSource Parameter(s)

Donc, après les avoir configurés pour autoriser une valeur nulle, le problème est résolu!

1
Dk358

check DataSet Dans Report Server, j'avais un problème similaire. J'étais en train de modifier un jeu de données partagé dans Visual Studio, mais cela n'a pas fonctionné. Après une heure de frustration, j'ai vérifié le groupe de données dans le serveur de rapports et j'ai découvert qu'il n'était pas mis à jour avec les modifications apportées dans Visual Studio, je le supprime et je redéploie le jeu de données à nouveau de Visual Studio. Ça marche .

1
Arash

J'avais le même problème, il est maintenant trié sur SQL Server 2008 R2.

Je sais que c'est maintenant une vieille question, Mais juste pour aider les autres:

C'était très simple en réalité, il suffisait de s'assurer que l'orthographe, y compris la casse, est la même et l'utilisation de @.

J'ai un ensemble de données partagé appelé currentSpaceByDrive avec le code suivant:

SELECT 
   [DRIVE]
  ,[Volume_Size_GB]
  ,[VolumeSpaceAvailable_GB]
  ,[VolumePercentAvailable]
FROM  monitoring.dbo.currentSpaceByDrive(@ServerID)

J'ajoute le dataset partagé currentSpaceByDrive à mon rapport et lui donne le même nom . Lorsque je clique dessus avec le bouton droit de la souris, celui du rapport, les propriétés du dataset, le paramètre est @ServerID.

La valeur @ServerID provient d'un autre ensemble de données, appelé the_servers (où l'utilisateur sélectionne un ID serveur).

J'ai un paramètre de rapport également appelé @ServerID qui tire sa valeur de the_servers et qui est utilisé pour alimenter le paramètre @ServerID sur currentSpaceByDrive.

Je comprends trop de @ServerID, mais si vous faites votre propre test en fonction de cela, vous le ferez terminé ..__ Voir l'image ci-jointe.

espère que cela aide marcelo

enter image description here

1
marcello miorelli

En fait je devais:

  • Supprimez l'objet SubReport du rapport.
  • Faites glisser un nouvel objet de la boîte à outils
  • Configurer le nom et le rapport du sous-rapport
  • Dans Paramateres "Add", choisissez chaque paramètre et la valeur associée.

Alors ça marche pour moi.

0
JanBorup