2010-03-20 7 views
0

J'essaie de renommer les colonnes. La syntaxe doit être le nom de colonne entre guillemets Incase de deux mots, comme ceci:Aide avec la requête SQL en C#

SELECT p_Name "Product Name" from items 

Je suis en train de le faire dans le code C# comme ceci:

string sqlqry1 = "SELECT p_Name \"Prodcut Name\" from items"; 

Mais j'obtenir une erreur:

Syntax error (missing operator) in query expression 'p_Name "Prodcut Name"'. 

Il semble y avoir quelque chose qui ne va pas avec les guillemets, mais je ne peux pas comprendre.

+3

Quelle base de données: MySQL? SQL Server 2005? 2008? – Thomas

+0

Je suis surpris les gens sautent pour répondre sans savoir quel serveur de base de données il est –

+0

J'utilise MS Access, j'aurais dû mentionner, mon mauvais. – DanSogaard

Répondre

3

Vous ne spécifiez pas ce que la base de données que vous utilisez. Différents SGBD utilisent des systèmes de cotation différents pour les identificateurs (comme les noms de colonnes). Essayez:

SELECT p_Name AS [Product Name] FROM items 

ou

SELECT p_Name AS `Product Name` FROM items 

qui sont deux systèmes communs. En outre, utilisez le spécificateur AS même si certains SGBD vous permettent de le laisser de côté. (PS: Dans le deuxième exemple, le caractère de citation est le caractère arrière, généralement sur la même clé que le tilde (~) sur les claviers américains).

+0

Merci, ça a marché. – DanSogaard

+1

@DanSogaard: Qu'est-ce qui a fonctionné? – gbn

+0

Toujours un plaisir d'être utile. –

1

Il vous manque un as:

string sqlqry1 = "SELECT p_Name as \"Prodcut Name\" from items"; 
+2

Déchets. c'est optionnel. Voir http://msdn.microsoft.com/en-us/library/ms176104.aspx il dit '... [[AS] column_alias] ...' – gbn

+2

@ gbn: Pourquoi citez-vous Microsoft docs lorsque le PO a fait ne précise pas quelle base de données il utilise? –

+0

@Larry Lustig: soin de parier? Chaque SGBD nécessite-t-il également un AS? – gbn