Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Carregando comentários...