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

For each No funciona TreeView

Estas en el tema de For each No funciona TreeView en el foro de .NET en Foros del Web. ESTIMADOS TENGO ESTE CODIGO PERO NO ME ESTA ARROJANDO DATOS Y NO SE PORQUE FAVOR DE AYUDAR Dim cadena As String cadena = "Data Source ...
  #1 (permalink)  
Antiguo 11/11/2009, 10:09
 
Fecha de Ingreso: octubre-2009
Mensajes: 63
Antigüedad: 14 años, 6 meses
Puntos: 0
De acuerdo For each No funciona TreeView

ESTIMADOS TENGO ESTE CODIGO PERO NO ME ESTA ARROJANDO DATOS Y NO SE PORQUE

FAVOR DE AYUDAR

Dim cadena As String
cadena = "Data Source = BRAVO; Initial Catalog = dbmultiusuario; Integrated Security=SSPI; Trusted_Connection=false; user id = glopez ; Password = lopez"
Dim cnn As New SqlConnection(cadena)
Dim variable As String
variable = Me.TxtCodigoAsignacion.Text

' crear los DataAdapter
Dim oDAMenu As New SqlDataAdapter("select m.idmenu, f.codigo_form FROM FORMULARIO f, SISTEMA s, MENU m WHERE (s.idsistema = f.idsistema) and (m.idsistema = s.idsistema) and f.idsistema = '" & Me.TxtCodigoAsignacion.Text & "'", cnn)
'Dim oDAFormulario As New SqlDataAdapter("SELECT * FROM FORMULARIO ", cnn)

' crear conjunto de datos
Dim oDataSet As New DataSet

' abrir la conexión
'cnn.abrirConexion()

' utilizar los adaptadores para llenar el dataset con las tabla
oDAMenu.Fill(oDataSet, "MENU")
'oDAFormulario.Fill(oDataSet, "FORMULARIOS")

' cerrar la conexión
'cnn.cerrarConexion()

' defino variables del tipo DataTable
Dim oTablaMenu As New DataTable
'Dim oTablaFormulario As DataTable

' asigno a las variables los datos de las tablas del DataSet
oTablaMenu = oDataSet.Tables(0)
'oTablaFormulario = oDataSet.Tables("FORMULARIOS")

Dim oVista As DataView

' lleno la vista con el contenido de la Tabla MENU
'oVista = oDataSet.Tables("MENU").DefaultView
oVista = oTablaMenu.DefaultView

' deshabilita la actualización en pantalla del control TreeView
TVMenuAsignacion.BeginUpdate()

' defino variable del tipo DataRow
Dim Registro As DataRow

'Declarando el Nodo
Dim nodo As New TreeNode

' creo un nodo raiz (el nombre Country, puede ser cualquier texto como Raíz, Root, etc.)
nodo = TVMenuAsignacion.Nodes.Add("Sistema")

For Each Registro In oTablaMenu.Rows
' agrego el nodo en el segundo nivel
nodo = TVMenuAsignacion.Nodes(0).Nodes.Add(Trim(Registro( "IDMENU")))
' si no hay un nodo raiz, se usaría la siguiente línea
'nodo = TreeView1.Nodes.Add(Trim(Registro("RegionDescripti on")))

' realizo un filtro dentro de la vista
oVista.RowFilter = "EMPRESA = " & Registro("EMPRESA")

' ciclo para recorrer la vista previamente filtrada
Dim a As Integer
For a = 0 To oVista.Count - 1
' agrego el nodo en el tercer nivel
nodo.Nodes.Add(Trim(oVista.Item(a).Row("CODIGO_FOR M")))
Next
' expando todos los nodos de árbol secundario
nodo.ExpandAll()
Next
' habilita la actualización en pantalla del control TreeView
TVMenuAsignacion.EndUpdate()

' modifico la propiedad AllowDrop a True para poder realizar Drag and Drop
TVMenuAsignacion.AllowDrop = True

' modifico la propiedad Sorted a True para que los nodos estén ordenados
TVMenuAsignacion.Sorted = True
  #2 (permalink)  
Antiguo 11/11/2009, 13:23
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: For each No funciona TreeView

No te devuelve ningún error??? Yo a veces he tenido problemas cuando no le asigno los valores al dataview con las comillas simples
Código vb.net:
Ver original
  1. oVista.RowFilter = "EMPRESA = '" & Registro("EMPRESA") + "'"

1.- Algunas observaciones, cuando usas datasets no es necesario indicarle que abra y cierre la conexión ya que internamente este objeto lo hace.
2.- En vez de usar Trim(Registro( "IDMENU")) deberías usar Registro( "IDMENU").Trim(), el primero es un método de visual basic 6 mientras que el otro es del .Net Framework. Si en alguna versión posterior quitan esos métodos de compatibilidad hacia atrás quizá tendrías problemas.
3.- Usa option Strict en ON

__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 12/11/2009, 07:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 63
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: For each No funciona TreeView

Gracias por la yuda, le hice los cambios que me dijistes y no pasa nada

Se salta el ForEach, que es esta parte del codigo

For Each Registro In oTablaMenu.Rows
' agrego el nodo en el segundo nivel
nodo = TVMenuAsignacion.Nodes(0).Nodes.Add(Registro("IDME NU").Trim())
' si no hay un nodo raiz, se usaría la siguiente línea
'nodo = TVMenuAsignacion.Nodes.Add(Trim(Registro("CARGA")) )

' realizo un filtro dentro de la vista
oVista.RowFilter = "EMPRESA = '" & Registro("EMPRESA") + "'"

' ciclo para recorrer la vista previamente filtrada
Dim a As Integer
For a = 0 To oVista.Count - 1
' agrego el nodo en el tercer nivel
nodo.Nodes.Add(Trim(oVista.Item(a).Row("CODIGO_FOR M")))
Next
' expando todos los nodos de árbol secundario
nodo.ExpandAll()
Next
  #4 (permalink)  
Antiguo 12/11/2009, 07:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 63
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: For each No funciona TreeView

Pero esta bien la primera parte donde se pasa la query por completo??

Dim oDAMenu As New SqlDataAdapter("select m.idmenu, f.codigo_form FROM FORMULARIO f, SISTEMA s, MENU m WHERE (s.idsistema = f.idsistema) and (m.idsistema = s.idsistema) and f.idsistema = '" & Me.TxtCodigoAsignacion.ToString & "'", cnn)

No cacho sinceramente porque no funciona

Podrias revisar si tengo bien puesto el codigo y bien asignado, ejemplo el dataAdapter, Data set y eso... porque no tira ningun error, SOLO CARGA EL FORMULARIO Y MUESTRA SOLO EL NODO RAIZ QUE ES SISTEMA, que es esta parte del codigo

nodo = TVMenuAsignacion.Nodes.Add("Sistema")

Gracias y 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 13:33.