2009-11-15 2 views
-1

Je veux utiliser construction de cas de SQL:cas consrtuct de sql dans asp.net

CASE WHEN ans='A' THEN 1 ELSE 0 END 

(Où ans est une chaîne déclarée dans ASP.NET) dans une requête d'insertion comme:

SqlCommand AnsCmd = new SqlCommand("insert into answers(ans_desc,istrue)values('" + ans1_desc + "',CASE WHEN ans='A' THEN 1 ELSE 0 END)", conn); 

Mais ça ne marche pas ... peut-être que la syntaxe est fausse? S'il vous plaît aider.

+0

Quelle est l'exception qui est levée? –

+0

en fait il n'y a pas d'exception ... le succès est retourné mais rien n'est inséré dans la table – anay

Répondre

2

Il semble que le problème se situe à la variable ans que vous utilisez. Vous devez le déclarer à votre requête avant de l'utiliser dans votre instruction CASE.

DECLARE @ans varchar(1); 
SET @ans = 'A'; 
INSERT INTO answers(ans_desc,istrue) 
VALUES('answer desc',CASE WHEN @ans='A' THEN 1 ELSE 0 END); 
0

La variable SQL ans est déclarée nulle part dans votre instruction SQL. D'où vient-elle? Sql ou votre application ASP.NET?