Obtener datetime de vista sql para grafico vb.net
Hola a todos, bueno llevo tiempo en lo que es vb.net y sql. Estoy usando el visual studio y el sql server express 2005. El problema que tengo que estoy haciendo un grafico a traves de los controles chart de visual.
Tengo una vista almacenada en SQL SERVER la cual es una tabla con 3 columnas:
nombre--->text
monto----> integer
fecha----->datetime
en VB.NET hago un load en mi formulario que carga los datos de esta vista guardada:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'Datasetchart11.vistadcto' Puede moverla o quitarla según sea necesario.
Me.VistadctoTableAdapter.Fill(Me.Datasetchart11.vistadcto)
luego en mi form quiero bajo esta vista representar 3 tipos de graficos los cuales 2 me salen a la perfecccion que es el de barras y el de forma de galleta donuts basados en los datos de la vista anteriormente cargada.
Dim tablas As DataTable = Me.Datasetchart11.vistadcto 'El dataset del gráfico es la tabla vista dcto
Dim xval As String = tablas.Columns(0).ToString 'la 1era columna es el eje x
Chart1.DataSource() = BindingSource1 'binding para unir los datos del grafico chart1
Chart1.DataBind() ' se unen los datos
Dim combo As String = ComboBox1.Text 'datos de combobox
If combo = "Barra de montos" Then
Chart1.Series(0).XValueMember = xval 'valor del eje x es la columna de la vista de tabla dcto
Chart1.Series(0).YValueMembers = tablas.Columns(1).ToString ' el valor del y es la 2da columna
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Bar 'el grafico es de tipo barra
'Chart1.ChartAreas(0).Area3DStyle.Enable3D = True ' se visualiza con estilo 3D
Chart1.Visible = True ' es visible
End If
If combo = "Circular" Then
Chart1.Series(0).Sort(DataVisualization.Charting.PointSortOrder.Ascending)
Chart1.Series(0).XValueMember = tablas.Columns(1).ToString
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Doughnut
Chart1.Visible = True
el tercer grafico debe tener como eje "y" el monto y como eje "x" las fechas, las cuales en la vista estan ordenadas de menor a mayor entonces el grafico debe quedar de esta forma:
15.000
10.000
5000
2500
....
----------------------------------------->
12/07 13/08 21/08
el eje y ningun problema pero el eje x no lo puedo hacer calzar, entonces el desafio es como hacer que los valores de la columna fecha me aparescan en el eje x de mi grafico como en el ejemplo que puse tengo este codigo pero me muestra en vez de fechas numeros reales.
Chart1.ChartAreas(0).AxisX.Name = "Fechas"
Chart1.ChartAreas(0).AxisY.Name = "Montos"
Chart1.Series(0).XValueMember = tablas.Columns("fecha").ToString
Chart1.Series(0).YValueMembers = tablas.Columns("monto").ToString
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line
algun tipo de ayuda seria muy importante ojala lo mas pronto posible, de antemano agradecer cualquier solucion.
Tengo una vista almacenada en SQL SERVER la cual es una tabla con 3 columnas:
nombre--->text
monto----> integer
fecha----->datetime
en VB.NET hago un load en mi formulario que carga los datos de esta vista guardada:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'Datasetchart11.vistadcto' Puede moverla o quitarla según sea necesario.
Me.VistadctoTableAdapter.Fill(Me.Datasetchart11.vistadcto)
luego en mi form quiero bajo esta vista representar 3 tipos de graficos los cuales 2 me salen a la perfecccion que es el de barras y el de forma de galleta donuts basados en los datos de la vista anteriormente cargada.
Dim tablas As DataTable = Me.Datasetchart11.vistadcto 'El dataset del gráfico es la tabla vista dcto
Dim xval As String = tablas.Columns(0).ToString 'la 1era columna es el eje x
Chart1.DataSource() = BindingSource1 'binding para unir los datos del grafico chart1
Chart1.DataBind() ' se unen los datos
Dim combo As String = ComboBox1.Text 'datos de combobox
If combo = "Barra de montos" Then
Chart1.Series(0).XValueMember = xval 'valor del eje x es la columna de la vista de tabla dcto
Chart1.Series(0).YValueMembers = tablas.Columns(1).ToString ' el valor del y es la 2da columna
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Bar 'el grafico es de tipo barra
'Chart1.ChartAreas(0).Area3DStyle.Enable3D = True ' se visualiza con estilo 3D
Chart1.Visible = True ' es visible
End If
If combo = "Circular" Then
Chart1.Series(0).Sort(DataVisualization.Charting.PointSortOrder.Ascending)
Chart1.Series(0).XValueMember = tablas.Columns(1).ToString
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Doughnut
Chart1.Visible = True
el tercer grafico debe tener como eje "y" el monto y como eje "x" las fechas, las cuales en la vista estan ordenadas de menor a mayor entonces el grafico debe quedar de esta forma:
15.000
10.000
5000
2500
....
----------------------------------------->
12/07 13/08 21/08
el eje y ningun problema pero el eje x no lo puedo hacer calzar, entonces el desafio es como hacer que los valores de la columna fecha me aparescan en el eje x de mi grafico como en el ejemplo que puse tengo este codigo pero me muestra en vez de fechas numeros reales.
Chart1.ChartAreas(0).AxisX.Name = "Fechas"
Chart1.ChartAreas(0).AxisY.Name = "Montos"
Chart1.Series(0).XValueMember = tablas.Columns("fecha").ToString
Chart1.Series(0).YValueMembers = tablas.Columns("monto").ToString
Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line
algun tipo de ayuda seria muy importante ojala lo mas pronto posible, de antemano agradecer cualquier solucion.