eu_Nana 0 Denunciar post Postado Agosto 24, 2012 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
quintelab 91 Denunciar post Postado Agosto 24, 2012 Como não assim? Os nós não estão sendo adicionados a treeview? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
eu_Nana 0 Denunciar post Postado Agosto 25, 2012 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