Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

eu_Nana

[Resolvido] Carregando treeview com dados do banco

Recommended Posts

OLá...

 

Alguem pode me ajudar ...estou desenvolvendo um sistema de permissões em c#...e estou listando os usuarios em um treeview.......mas estou com algumas duvidas....bom estou usando stored procedure e classes DAO veja:

 

ClasseDAO


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using Banco;

/// <summary>
/// Summary description for clsPerfilAcessosDAO
/// </summary>
public class clsPerfilAcessosDAO
{


   #region " Constantes de acesso ao banco de dados "

   private const string spLISTA__TODOS_USUARIOS = "[s USUARIO selecao lista usuarios]";

   #endregion

   #region " Variaveis de acesso ao banco de dados "

   private DBFunctions DB;
   private DataSet DS;

   private string StoredProc;     // Stored Procedure
   private string NomeParIn;     // Parametros de Entrada
   private string ParIn;        // Valores de Entrada
   private string NomeParOut;  // Parametros de Saida
   private string ParOut;     // Valores de Saida
   private string SQL;       // Comando SQL ou Nome da stored procedure contendo um comando sql






   #endregion

   #region " Métodos de acesso ao banco de dados "

   public DataSet LISTA_TODOS_USUARIOS()
   {
       try
       {
           bool bResult;
           SQL = spLISTA_TODOS_USUARIOS;
           bResult = DB.ExecutarConsulta(ref SQL, ref DS);
           return DS;
       }
       catch (Exception ex)
       {
           throw new ApplicationException(ex.Message, ex.InnerException);
       }
   } 





   #endregion

 

 

 

Classe.cs


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using Banco;
using System.Configuration;

/// <summary>
/// Summary description for clsPerfilAcessos
/// </summary>
public class clsPerfilAcessos
{


   #region Atributos

   private DBFunctions DataBase;
   private clsPerfilAcessosDAO PerfilAcessosDAO;
   private DataSet DataSet;
   private clsPerfilAcessos[] PerfilAcessos;
   private System.Web.SessionState.HttpSessionState ptrSession;
   private String ConString;

   #endregion


   public clsPerfilAcessos(System.Web.SessionState.HttpSessionState p_oSession)
{
       ptrSession = p_oSession;
}

   public bool listandoUsuarios()
   {
       DataBase = new Banco.DBFunctions();
       ConString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
       ConString = _sConString.Replace("USERNAME", ptrSession["Login"].ToString());
       ConString = _sConString.Replace("SENHA", ptrSession["Senha"].ToString());
       DataBase.ConnectionString = ConString;
       PerfilAcessosDAO = new clsPerfilAcessosDAO();
       PerfilAcessosDAO.banco(m_oDataBase);
       DataSet = PerfilAcessosDAO.LISTA_USUARIOS();


       //Verifica se houve retorno de algum valor da busca no banco de dados
       try
       {
           string Codigo = DataSet.Tables[0].Rows[0]["Sis_Usuario_vch_Nome"].ToString();
           return true;
       }
       catch (IndexOutOfRangeException)
       {
           return false;
       }
       return true;
   }

 

Parte da página .aspx

<asp:View ID="View1" runat="server">

                   Usuariosbr /><br /><br />


                   <asp:TreeView ID="trvMenu" runat="server"></asp:TreeView>



               </asp:View>

 

 

Pagina .aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using Banco;
using System.Configuration;

public partial class Perfil_Acesso : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {

       tabMenu.Items[MultiView1.ActiveViewIndex].Selected = true;

       if (!IsPostBack)
       {
           CarregarMenu();
       }



   }



  void CarregarMenu()
   {
       string strConexao = @"Persist Security Info=true;Password='senha';User ID=user;Initial Catalog=banco;Data Source=localhost";

       string cmdMenu = "select Usuario_vch_Nome from Usuario";
       string cmdSubMenu = "select Usuario_vch_Login from Usuario Where Usuario_vch_Login = @Login";


       try
       {
           TreeNode nodeMenu;
           TreeNode nodeSubMenu;

           DataTable menu = GetDataTable(strConexao, cmdMenu, 0);
           DataTable subMenu;

           foreach (DataRow item in menu.Rows)
           {
               //parametro para o SubMenu
               int regionId = int.Parse(item["Usuario_vch_Nome"].ToString());
               nodeMenu = new TreeNode();
               nodeMenu.Value = regionId.ToString();
               nodeMenu.Text = item["Usuario_vch_Nome"].ToString();

               subMenu = new DataTable();
               subMenu = GetDataTable(strConexao, cmdSubMenu, regionId);

               foreach (DataRow itemSubMenu in subMenu.Rows)
               {
                   nodeSubMenu = new TreeNode();
                   //Text
                   nodeSubMenu.Text = itemSubMenu["Usuario_vch_Nome"].ToString();
                   //url
                   nodeSubMenu.NavigateUrl = itemSubMenu["Usuario_vch_Nome"].ToString() + ".aspx";
                   nodeMenu.ChildNodes.Add(nodeSubMenu);
               }

               //adiciona item ao TreeView da pagina
               trvMenu.Nodes.Add(nodeMenu);
           }

           trvMenu.CollapseAll();

       }
       catch (Exception)
       {
           throw;
       }
   }

   private DataTable GetDataTable(string strConexao, string strCommand, int regionID)
   {
       SqlConnection conexao = new SqlConnection(strConexao);
       SqlCommand command = new SqlCommand(strCommand, conexao);

       if (regionID > 0)
       {
           command.Parameters.Add("@Login", SqlDbType.Int).Value = regionID;
       }

       DataTable dtRetorno = new DataTable();
       SqlDataReader reader = null;

       try
       {
           conexao.Open();
           reader = command.ExecuteReader();
           dtRetorno.Load(reader);
           conexao.Close();
           return dtRetorno;
       }
       catch (Exception)
       {
           throw;
       }
   }


}

 

 

Mas nesse último código estou meio perdida...pq se estou usando stored procedure...já faz a consulta na stored procedure e chamo na classeDAO e na classe.cs ....só q não sei como faço nessa ultimo página...para exibir na página .aspx

 

Alguem pode me ajudar por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não assim? Os nós não estão sendo adicionados a treeview?

 

Abraços...

 

 

Olá consegui resolver....na verdade o problema estava nessa consulta:

 

 string SubMenu = "select Usuario_vch_Login from Usuario Where Usuario_vch_Login = @Login";

 

Estava passando o login(varchar) e tem que ser o codigo

 

No caso a consulta correta ficou assim:

 string SubMenu = "select Usuario_vch_codigo from Usuario Where Usuario_vch_codigo = @codigo";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.