entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Que hace esta linea de codigo?

Estoy trabajando en visual studio 2013, con aspnet webform con el lenguaje c#

me sale error en el codigo de abajo, y sinceramente copie y pegue sin saber que hace.

ds.Relations.Add("ChildRows", ds.Tables[0].Columns["IdCategoria"], ds.Tables[0].Columns["IdCategoriaSuperior"]);

aque les anexo el codigo completo:

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;

namespace treeviewdemo2012
{
    public partial class TreeviewPage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetTreeViewItem();
            }

        }

        private void GetTreeViewItem()
        {
            string cs = ConfigurationManager.ConnectionStrings["DBPRUEBA"].ConnectionString;
            SqlConnection con = new SqlConnection(cs);
            SqlDataAdapter da = new SqlDataAdapter(
                "usp_CategoriaSelect", con);
            DataSet ds = new DataSet();
            da.Fill(ds);

            //ds.Relations.Add("ChildRows", ds.Tables[0].Columns["IdCategoria"], ds.Tables[0].Columns["IdCategoriaSuperior"]);
            ds.Relations.Add("ChildRows", ds.Tables[0].Columns["IdCategoria"], ds.Tables[0].Columns["IdCategoriaSuperior"]);
            foreach (DataRow level1DataRow in ds.Tables[0].Rows)
            {
                if (string.IsNullOrEmpty(level1DataRow["Descripcion"].ToString()))
                {
                    TreeNode parentTreeNode = new TreeNode();
                    parentTreeNode.Text = level1DataRow["Descripcion"].ToString();

                    DataRow[] childRows = level1DataRow.GetChildRows("ChildRows");
                    foreach (DataRow level2DataRow in childRows)
                    {
                        TreeNode childTreeNode = new TreeNode();
                        parentTreeNode.Text = level2DataRow["Descripcion"].ToString();
                        parentTreeNode.ChildNodes.Add(childTreeNode);
                    }
                    TreeView1.Nodes.Add(parentTreeNode);
                }
            }
        }
    }
}

0voto

ankeorum comentado

Parece como si añadiera una nueva fila del tipo de fila "ChildRow" y asociada con la columna "IdColumnaSuperior" no? Al menos eso me parece a mí. No te sé decir con exactitud porque nos usamos VB.Net en mi empresa sino PHP y todo orientado a web.

1 Respuesta

2votos

carlossevi Puntos63580

El objeto ds es un DataSet. Los DataSet contienen a su vez varios objetos DataTable, que pueden tener relaciones entre sí como sucede en muchos modelos de datos.

Lo que hace la línea de código ds.Relations.Add es añadir una nueva relación a la lista de relaciones que hay definidas dentro del DataSet.

La función para añadir relaciones tiene 3 parámetros:

  • Nombre de relación
  • Columna primaria de la relación
  • Columna secundaria de la relación

En tu caso particular:

  • Nombre: "ChildRows"
  • Columna primaria: columna idCategoria de la tabla 0.
  • Columna secundaria: columna idCategoriaSuperior de la tabla 0.

Si necesitas ayuda para solucionar el error tendrás que darnos más pistas, por ejemplo pega el contenido del mensaje que da el compilador.

Referencia:
http://msdn.microsoft.com/es-es/library/ay82azad%28v=vs.110%29.aspx

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta