2010-06-04 7 views
1

Ce code:.NET C# mysql SUBSTRING me donne System.Byte []?

SELECT SUBSTRING(posted,1,4) as year FROM styles 
reader = cmd1.ExecuteReader(CommandBehavior.CloseConnection); 
reader.Read(); 
Response.Write(reader[0].ToString()); 

Je ne reçois que la chaîne "System.Byte []" imprimé. Comment venir?

Si j'utilise le logiciel Mysql Query Browser, j'obtiens la chaîne actuelle de ma base de données. Je comprends que "Byte []" est un arraylist mais comment puis-je le convertir en une chaîne pure? Le champ "posted" dans ma base de données contient une date comme "2010-04-04 13:23:00" et je veux obtenir seulement l'année en utilisant SUBSTRING.

Répondre

0

La requête est correcte

SELECT DISTINCT SUBSTRING(CONVERT(varchar, posted, 111),1,4) as year FROM styles 

Il est égal à

SELECT STR(YEAR(posted)) as year FROM styles-- YEAR returns int statement 

Le premier argument est converti, que sous-chaîne extraite. - le format de convertion: http://www.mssqltips.com/tip.asp?tip=1145

Essayez aussi

reader["year"].ToString(); 

aussi loin que vous utilisez cet alias.

0

Vous devez utiliser la .GetString

-à-dire

reader[0].GetString(0); 

De plus, vous pouvez utiliser la fonction AN MySQL pour extraire l'année à partir de votre date.

-à-dire

SELECT YEAR(date_field) FROM table 
+0

Très bien! Je vous remercie. :) Mais cela n'a pas fonctionné avec "lecteur [0] .GetString (0)" J'ai utilisé "reader.GetString (0)". :) Mais maintenant je suis arrivé à un deuxième problème aussi ... Je dois sélectionner ceci avec DISTINCT et quand j'utilise "SELECT DISTINCT SUBSTRING (posté, 1,4) comme année de styles" je n'ai rien même que mon la table a 10 rangées dedans. – midnightsyntax

+0

@theSwede - Que se passe-t-il si vous utilisez la fonction YEAR() au lieu de SUBSTRING()? –

+0

Même chose. Je reçois la chaîne en tant que "System.Byte []" et dois la convertir. Mais en fait, j'ai besoin de mettre cela dans un répéteur et dans le formulaire web en utilisant "<% # DataBinder.Eval (Container.DataItem," posté ")%>" pour imprimer l'année mais comment lancer le "GetString () "sur ce code? – midnightsyntax