2010-09-30 6 views
0

Quelqu'un peut-il me dire ce que j'ai mal écrit dans la requête suivante afin que ce message d'erreur soit affiché.Syntaxe incorrecte près du mot-clé UNION

strSelectQuery = "SELECT LED_ID AS PK_ID, FIRST_NAME + ' ' + LAST_NAME AS NAME" 
         + " FROM M_LEADERLED INNER JOIN M_USER_DETAILS" 
         + " ON M_LEADERLED.LED_ID = M_USER_DETAILS.PK_ID" 
         + " WHERE (M_LEADERLED.LEADER_ID = " + Session["UserID"].ToString() + "" 
         + " AND M_USER_DETAILS.ACTIVE = 1 AND M_LEADERLED.START_DATE <= Getdate()" 
         + " AND M_LEADERLED.END_DATE > Getdate())" 
         + " UNION SELECT PK_ID, FIRST_NAME + ' ' + LAST_NAME AS NAME" 
         + " FROM M_USER_DETAILS WHERE PK_ID = " + Session["UserID"].ToString() + ";"; 
+0

aidez-moi mon pote !!! – preety

+0

quel message d'erreur pourrait-il être? – Tahbaza

+1

Si vous obtenez ceci lors de l'exécution de cette requête, je vous suggère d'imprimer la chaîne de requête et de l'exécuter manuellement une fois. –

Répondre

2

Vous avez besoin des guillemets simples autour de la sortie du Session["UserID"].ToString(), comme ceci:

+ " WHERE (M_LEADERLED.LEADER_ID = '" + Session["UserID"].ToString() + "'" 

Dois-je mentionner aussi que vous devriez être:

  • faire un chèque nul sur Session["UserID"] avant vous essayez de ToString() il?
  • ne jamais jamais jamais faire votre SQL de cette façon si vous pouvez l'éviter - c'est un trou de sécurité énorme (consultez SQL injection)

EDIT: en fonction des informations mises à jour fournies par l'OP, parce que les touches sont numériques, vous n'avez pas besoin de les citer. Vous avez vraiment besoin de vérifier la sortie de Session["UserID"] (car il pourrait être garbage ou null), et vous devez nous montrer la chaîne SQL entièrement construite.

+0

Il n'est toujours pas en cours d'exécution. – preety

+0

@preety - Vous avez deux références à 'Session [" UserID "]', avez-vous cité les deux? Si oui, quel est le message d'erreur maintenant? Avez-vous vérifié ce que vous obtenez de 'Session [" UserID "]'? Vous devez également utiliser le débogueur pour passer par-dessus cette ligne, puis afficher strSelectQuery dans la fenêtre de débogage Immédiate et nous donner le contenu de cette chaîne. – slugster

Questions connexes