2011-05-27 4 views
2

Je reçois le message d'erreur suivant pour un code donné lorsque l'utilisateur clique sur le bouton de recherche plus de deux fois. Quelqu'un peut-il aider s'il vous plaît ce que je fais mal.Le nom de variable '@Param' a déjà été déclaré

Le nom de la variable '@Param' a déjà été déclaré . Les noms de variables doivent être uniques dans un lot de requêtes ou stockés dans la procédure .

protected void btnSearch_Click(object sender, EventArgs e) 
{ 
    DS.SelectCommand = 
     "SELECT ReportName, ReportType, 
     FROM Table 
     WHERE ReportName LIKE @param 
     ORDER BY ReportType Desc"; 
    DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
    DS.DataBind(); 
    ListView1.DataBind();    
} 
+0

avez-vous essayé d'effacer tous les 'DS.SelectParameters' d'abord? (avant la ligne 'DS.SelectCommand') donc c'est un nouveau jeu de paramètres à chaque fois? – lhan

Répondre

5

ESSAYEZ

DS.SelectCommand = 
    "SELECT ReportName, ReportType, 
    FROM Table 
    WHERE ReportName LIKE @param 
    ORDER BY ReportType Desc"; 
DS.SelectParameters.Clear(); 
DS.SelectParameters.Add("Param", searchTxtBox.Text.Replace("'", "''")); 
+0

Merci @Bala, j'ai placé clairement en haut et en bas pas où vous avez spécifié. À votre santé! Fonctionne très bien!! –

0

Comme je ne vois pas où est définie DS Je ne peux pas être sûr, mais je soupçonne que vous utilisez la même source de données ailleurs avec un autre Param. Utilisez une source différente pour chaque requête différente.

Questions connexes