Foros del Web » Programación para mayores de 30 ;) » .NET »

mostrar nombre mes en vez de nº [windows form]

Estas en el tema de mostrar nombre mes en vez de nº [windows form] en el foro de .NET en Foros del Web. hola, en una tabla de la BD, tengo un campo que se llama "mes" , dónde guardo el nº del mes. Luego debo visualizar los ...
  #1 (permalink)  
Antiguo 07/06/2005, 07:33
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
Pregunta mostrar nombre mes en vez de nº [windows form]

hola,

en una tabla de la BD, tengo un campo que se llama "mes" , dónde guardo el nº del mes. Luego debo visualizar los datos en un Grid. Cargo el grid mediante el dataset.

Hay alguna manera que en vez de visualizar el nº del mes, me muestre el nombre que corresponde a ese mes. En vez de 2, me saque febrero, etc etc.

Lo único que se me ocurre es ir registro por registro del dataset y canviarlo, pero eso con muchos registros me será un poco lento, y no lo veo viable.

No sé si hay alguna forma de poner condiciones al dataset, o mediante consulta hacia la BD....


saludos.
  #2 (permalink)  
Antiguo 07/06/2005, 07:49
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Esta sería una opción, hacerlo directamente en la sentencia que te trae los registros.. Sería algo como esto:

SELECT NombreMes = CASE mes
WHEN '1' THEN 'Enero'
WHEN '2' THEN 'Febrero'
WHEN '3' THEN 'Marzo'
WHEN '4' THEN 'Abril'
...
END
FROM table1

De este modo "NombreMes" te traería ya el nombre del mes de acuerdo a lo que esté en tu tabla.

Espero te sirva de ayuda. Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #3 (permalink)  
Antiguo 07/06/2005, 08:11
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Otra forma es hacerlo desde código y sería:

dim currentMonth as String = MonthName(numero)

Y regresará el nombre del mes..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 07/06/2005, 08:24
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
primero de todo, gracias por responder :)

lo que pasa que para hacer eso que me decís tendré que recorrer registro por registro del datagrid,no? y eso es lo que no quiero.

Por ejemplo, en la celda del dataset, mediante código podría cambiarle el formato, y hacerlo algo más o menos como tu dices , Rootk?

saludos!
  #5 (permalink)  
Antiguo 07/06/2005, 08:26
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
uys perdón! que ahora me dado cuenta que la respuesta de Rony J. era para hacer la consulta sql...Lo probaré!
  #6 (permalink)  
Antiguo 07/06/2005, 08:34
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Utilizando la función que te dijo Rootk (MonthName) pudieras hacer algo asi:

<asp:Label id=Lbl1 runat="server" text='<%# MonthName(DataBinder.Eval(Container, "DataItem.mes")) %>'> </asp:Label>

O en lugar de monthname una función en tu codebehind que te haga lo mismo

Public Function NombreMes(Mes As Integer) As String
return MonthName(Mes)
End Function

y entonces sería asi:

<asp:Label id=Lbl1 runat="server" text='<%# NombreMes(DataBinder.Eval(Container, "DataItem.mes")) %>'> </asp:Label>

De esta manera no tienes que hacer un for ni nada para recorrer las filas del grid..

Saludos
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #7 (permalink)  
Antiguo 07/06/2005, 08:51
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
en un label no hay problema, pero para asignarle el nombre del mes a una celda del dataset?
  #8 (permalink)  
Antiguo 07/06/2005, 09:09
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
En realidad te coloque un ejemplo con un label suponiendo que tengas esto dentro de un TemplateColumn de tu DataGrid. Osea que la columna del dataset seguiría teniendo 1, o 2 o 3...pero lo que importaría en este caso es que cuando vincules tu grid al dataset no se mostrará ni 1 ni 2 sino enero,febrero...

Ahora que si lo que quieres es modificar directamente el contenido de la columna en tu dataset creo que lo más facil sería hacer entonces una consulta como la que te dije al principio.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #9 (permalink)  
Antiguo 10/06/2005, 05:17
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
Exclamación

Cita:
Iniciado por Rony J.
Esta sería una opción, hacerlo directamente en la sentencia que te trae los registros.. Sería algo como esto:

SELECT NombreMes = CASE mes
WHEN '1' THEN 'Enero'
WHEN '2' THEN 'Febrero'
WHEN '3' THEN 'Marzo'
WHEN '4' THEN 'Abril'
...
END
FROM table1

De este modo "NombreMes" te traería ya el nombre del mes de acuerdo a lo que esté en tu tabla.

Espero te sirva de ayuda. Saludos.

hago la consulta pero me da error, dice que falta operador en la consulta.
  #10 (permalink)  
Antiguo 10/06/2005, 06:06
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
ok. Ya lo he solucionado. Resulta que lo del MonthName también vale para las consultas SQL.

Ej:

select monthname(mes)
from mes

y me saca el nombre del mes correspondiente.

Saludos y gracias!
  #11 (permalink)  
Antiguo 10/06/2005, 07:46
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por freegirl
ok. Ya lo he solucionado. Resulta que lo del MonthName también vale para las consultas SQL.
cool! y pues bueno a la final no tienes que hacer mucho código para lograr lo que quieres..
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #12 (permalink)  
Antiguo 10/06/2005, 10:05
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
pues resulta que si hago la consulta des del mismo Access me funciona. pero cuando hago la consulta des del código en mi programa, me da error. Dice que no he declarado la función.

Lo raro es que si funciona desde Access, tambien debería funcionar cuando hago la consulta des del .net, no?


saludos!
  #13 (permalink)  
Antiguo 10/06/2005, 13:46
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por freegirl
Lo raro es que si funciona desde Access, tambien debería funcionar cuando hago la consulta des del .net, no?
saludos!
Efectivamente freegirl, al menos yo lo probe en Access y desde la página y me funcionó bien en ambos casos. Puede que estés haciendo algo mal que hace que te tire el error..

Si quieres pues nos mostrás parte de tu code a ver.. y si ya lo arreglaste pos nos lo comentas.

Saludos!
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #14 (permalink)  
Antiguo 10/06/2005, 14:01
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
ok! mañana te pongo el código de la consulta que tengo.

Es que ahora estoy en otro pc, y la aplicación la tengo en el pc de trabajo.


saludos!
  #15 (permalink)  
Antiguo 10/06/2005, 14:06
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Ok cool..

Entons te mando las "Good Night".. jejej (aunque creo que allá en España son como las 9Pm aún no?)

Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #16 (permalink)  
Antiguo 10/06/2005, 14:08
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
uiss casi!...son las 22:14 exactamente :)
  #17 (permalink)  
Antiguo 11/06/2005, 03:47
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
hola de nuevo!

dejo la consulta que tengo:

Cita:
SELECT idClase,idAlumno,alumno,totalHoras,nDias,monthName (mes) as nombreMes,año
FROM clase
WHERE idAlumno>0 and mes between " & mes1 & " and " & mes2 & " and año between " & any1 & " and " & any2 & " order by idClase desc
Me sale un error diciendo que no he definido la función monthname.


La consulta que he puesto arriba funciona correctamente si no pongo lo del monthName, asi que es algo falla por culpa de esto.


saludos!
  #18 (permalink)  
Antiguo 11/06/2005, 08:27
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por freegirl
Efectivamente Rony J., al menos yo lo probe en Access y desde la página y me funcionó bien en ambos casos.
oye disculpa el errorcillo, en la página me funcionó bien pero no tenia el MonthName directamente en la sentencia..

Creo que la mejor opción es que intentes algo como te dije antes, algo como esto:

<asp:Label id=Lbl1 runat="server" text='<%# MonthName(DataBinder.Eval(Container, "DataItem.mes")) %>'> </asp:Label>

Claro que en lugar de un label usarías el control que estés usando para mostrar el nombre del mes.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #19 (permalink)  
Antiguo 11/06/2005, 08:37
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
oye creo q tendré que tomarme un descanso... ahora me estoy dando cuenta que estás con windows form y lo que te digo es para web form... (y no es la primera vez..jejej)

No se como trabajarlo en este caso, una opción es recorrer las filas del dataset, pero creo que no es lo que quieres.. aunque si no lo puedes hacer directamente en la sentencia, y pues al menos yo no se como lo podrías hacer en tu datagrid para no tener que recorrer el dataset, esta sería una opción..

Espero te sirva de ayuda y disculpa la confusión..

Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #20 (permalink)  
Antiguo 11/06/2005, 09:39
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
sabes que con el Tablestyles, puedes dar formato a la celda. A lo mejor ahí puedo indicarle que me saque el noombre.


Dim TextCol3 As New DataGridTextBoxColumn
TextCol3.Format =



En el format que debería poner?


ya he probado lo del monthName ahí, pero no funciona.


saludos!
  #21 (permalink)  
Antiguo 13/06/2005, 07:57
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 20 años, 3 meses
Puntos: 0
Cita:
Iniciado por freegirl
sabes que con el Tablestyles, puedes dar formato a la celda. A lo mejor ahí puedo indicarle que me saque el noombre.


Dim TextCol3 As New DataGridTextBoxColumn
TextCol3.Format =
Hola de nuevo freegirl, pues como te dije no he trabajado aún con datagrid en winform.. pero así como dices que puedes acceder al formato de la celda del datagrid con TextCol3.Format quizá puedas acceder al contenido de la misma, de ser así puedes pasarle el MonthName y se mostraría lo que quieres..

Algo así:
TextCol3.Text = MonthName(1) (en logar de "1" colocarias el valor de la columna del dataset)

Te coloco esto como ejemplo, en realidad no se si de esta manera puedes acceder al texto de la columna..

Saludos.
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #22 (permalink)  
Antiguo 14/06/2005, 05:18
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
hola!

bueno ya lo he solucionado. Al final lo que hago es llenar el dataset, luego lo recorro, y hago lo del monthname. Vamos lo que no quería hacer, pero es que ya he probado varias cosas y no em funcionaba, y como ya no tengo más tiempo...

Lo de recorrer el dataset no lo hubiera hecho si sé que podría haber cientos de registros, pero como solo lista unos pocos mensuales, como mucho serán 300 registros

Saludos! :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:50.