2010-05-05 4 views
0

J'ai 1, 2, 3, 4, 5, 6, 7, 8, 9 stocké comme nvarchar dans Level in my db. J'ai ensuite une liste déroulante avec les valeurs 1,2,3,4,5,6,7,8,9. Lorsqu'un utilisateur effectue une sélection (c'est-à-dire 1) (Level.SelectedValue.ToString). Cela crée une requête SQL via un param comme ceci:Erreur de syntaxe lors de la conversion de la valeur nvarchar en une colonne de type de données int

"Select things From MBA_EOI Where level = 1" 

Quand je lance la sélection je reçois l'erreur suivante:

Syntax error converting the nvarchar value '1,2,3,4,5,6,7,8,9' to a column of data type int. 

J'avais l'impression que je traitais un champ Nvarchar et la valeur sélectionnée en tant que chaîne, où la conversion int entrer?

p.s J'ai aussi essayé Level.SelectedItem.ToString

+0

Je ne suis pas vraiment sûr de ce que vous essayez de faire avec cette requête. Si 1,2,3,4,5,6,7,8,9 sont tous stockés dans le même champ ce qui sélectionnerait où '1,2,3,4,5,6,7,8,9' = ' 1 'être destiné à réaliser? –

Répondre

5

En incluant level = 1 vous insinuez à SQL que vous voulez une comparaison numérique, et il est tentant de jeter toutes les valeurs de colonne à ints. Si vous utilisiez level = '1' à la place, vous obtiendriez une comparaison de texte sans conversion.

+0

Merci pour l'explication David. – Phil

Questions connexes