Ir para conteúdo

POWERED BY:

Arquivado

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

rafaelb

[Resolvido] Problema com consulta em banco

Recommended Posts

Boa tarde.. :)

 

Meu problema é simples, tenho uma tabela em meu banco de dados que possui os dados dos usuários cadastrados e está tabela tem uma chave estrangeira(user_Id) da tabela aspnet_Users, e em minha tabela usuários tenho a como chave primária o campo codUsuario. Preciso armazenar esse o codUsuario do usuario logado no sistema, a solução que encontrei foi pegar o user_Id do usuário logado no sistema e realizar uma consulta na tabela "usuarios" usando esse código que retorne o campo codUsuario.

 

Bem, o código que fiz está assim:

 

//declaração de conexão
		private string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
		//obtendo UserId
		private string userId = Membership.GetUser(true).ProviderUserKey.ToString();
		//variável para armazenar o código do usuário
		private string cdUsuario;

	protected void Page_Load(object sender, EventArgs e)
	{  
		//criando a conexão
		using (SqlConnection conn =
			new SqlConnection(this.connectionString)){
		//criando o comando
		string strCmd =
			"SELECT u.codUsuario FROM usuario AS u INNER JOIN aspnet_Users AS a ON u.UserID = a.UserId WHERE u.UserID = " + userId;
		SqlCommand cmd =
			new SqlCommand(strCmd, conn);
		//abrir a conexão com o database
		conn.Open();
		//aqui que está o erro, não sei como pegar o resultado e armazenar na váriavel cdUsuario
		conn.Close();
		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

SqlCommand cmd =new SqlCommand(strCmd, conn);

cmd.CommandType = CommandType.Text; //

conn.Open();  // abre a conexao
SqlDataReader reader = cmd.ExecuteReader(); // cria o objeto reader do tio datareader e efetua a consulta
// se retornar alguma coisa

try
{
  reader.Read()
  cdUsuario = (string)reader["codUsuario"];
}

catch
{ cdUsuario = "" }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

SqlCommand cmd =new SqlCommand(strCmd, conn);

 

cmd.CommandType = CommandType.Text; //

 

conn.Open(); // abre a conexao

SqlDataReader reader = cmd.ExecuteReader(); // cria o objeto reader do tio datareader e efetua a consulta

// se retornar alguma coisa

 

try

{

reader.Read()

cdUsuario = (string)reader["codUsuario"];

}

 

catch

{ cdUsuario = "" }

Cara, valeu pela ajuda, agora sim tá fazendo certinho o que eu queria. Depois vo tentar fazer isso usando uma stored procedure.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

O código ficou assim:

private string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
		private string userId = Membership.GetUser(true).ProviderUserKey.ToString();
		private string codUsuario;   
	
	
	protected void Page_Load(object sender, EventArgs e)
	{
		//criando a conexão
		using (SqlConnection conn =
			new SqlConnection(this.connectionString))
		{
			//criando o comando
			string strCmd =
				"SELECT usuario.codUsuario FROM usuario INNER JOIN aspnet_Users ON usuario.UserID = aspnet_Users.UserId WHERE (usuario.UserID = '" + userId + "')";
			SqlCommand cmd =
				new SqlCommand(strCmd, conn);
			//abrir a conexão com o database
			try
			{
				conn.Open();
				SqlDataReader reader = cmd.ExecuteReader();
				reader.Read();
				codUsuario = Convert.ToString(reader["codUsuario"]);
			}
			catch (SqlException ex) { this.ShowMessage(ex.Message); }
			catch (Exception ex) { this.ShowMessage(ex.Message); }
		}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok..

 

Agora estou com outra dúvida, se puder ajudar ficaria muito agradecido.. ^_^

 

Como estou usando em vários forms resolvi fazer uma classe com um método para realizar essa tarefa, até ai tudo bem, fiz a classe e ela não está dando nenhum erro, até o final dela o usuário campo recebe o valor correto, porém a váriavel que uso para puxar esse metódo na classe não recebe nenhum valor após a execução da classe..

 

Classe Usuario:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


namespace webAdmin
{
	public class Usuario
	{
		public static void obterCodUsuario(Int32 codigoUsuario)
		{
			string userId = Membership.GetUser(true).ProviderUserKey.ToString();
			//declaração de conexão
			string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

			//variável para armazenar o código do usuário
			//criando a conexão
			using (SqlConnection conn = new SqlConnection(connectionString))
			{
				//criando o comando
				string strCmd =
					"SELECT usuario.codUsuario FROM usuario INNER JOIN aspnet_Users ON usuario.UserID = aspnet_Users.UserId WHERE (usuario.UserID = '" + userId + "')";
				SqlCommand cmd = new SqlCommand(strCmd, conn);
				//abrir a conexão com o database
				try
				{
					conn.Open();
					SqlDataReader reader = cmd.ExecuteReader();
					reader.Read();
					codigoUsuario = (Int32)reader["codUsuario"];
				}
				//tratamento de exeções
				catch (SqlException ex) { }
				catch (Exception ex) { }
			}
		}
	}
}

 

Como estou chamando o método:

webAdmin.Usuario.obterCodUsuario(codigoAnuncio);

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.