none
Ajuda Duvida sobre stored procedures com C# RRS feed

  • Pergunta

  • Code Snippet

    Olá!

    Desde já o meu muito obrigado por me receberem bem.

    Vou colacar a minha primeira duvida neste forum


    Estou a desenvolver um pequeno prototipo que visa efectuar a autenticação de utilizadores (usuários) atraves de login e password.
    Tenho na base (banco) de dados (SQLSERVER 2005) uma tabela onde guardo os utilizadores. A tabela tem os seguintes campos Username, Passwordhash, Email.
    Estou a utilizar plataforma .NET 2005 a lingugem é C# com stored procedures.
    A ideia é saber se um utilizador (usuário) já existe na base de dados.
    Para isso eu desnvolvi um stored procedure que é o seguinte




    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go


    ALTER PROCEDURE [dbo].[Pesquisa_user]
        -- Add the parameters for the stored procedure here
        @Username nvarchar(128),
        @Passwordhash varchar(128),
        @Email nchar(10)
    AS
        -- Insert statements for procedure here

        SELECT Username FROM Users WHERE Username = @Username


    Estou a desenvolver também um método (PesquisaUser) em C# (na Class User.cs) que deve devolver um valor booleano caso o utilizador exista ou não
    Por exemplo deve devolver true (verdade) se o utilizador existir ou deve devolver false (falso) se o utilizador não existir.

    O método é o seguinte


    using System;
    using System.Data;
    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;
    using System.Data.Common;

    /// <summary>
    /// Summary description for User
    /// </summary>
    ///
    namespace iDomus.DAL.GRE.Projectos
    {
        public class User
        {
            public User()
            {
                //
                // TODO: Add constructor logic here
                //
            }


            public Boolean PesquisaUser(DbConnection conexao, String usrname, String pwduser, String usermail)
            {

                DbCommand comando = conexao.CreateCommand();
                comando.CommandText = "Pesquisa_user";//Nome do stored procedure
                comando.CommandType = CommandType.StoredProcedure;

                DbParameter parametro1 = comando.CreateParameter();

              
                parametro1.ParameterName = "Username";//nome da coluna da tabela (campo)
                parametro1.DbType = DbType.String;// Tipo de dados
                parametro1.Value = usrname;// valor a passar para o stored procedure
                comando.Parameters.Add(parametro1);

                DbParameter parametro2 = comando.CreateParameter();

                parametro2.ParameterName = "Passwordhash";
                parametro2.DbType = DbType.String;
                parametro2.Value = pwduser;
                comando.Parameters.Add(parametro2);

                DbParameter parametro3 = comando.CreateParameter();

                parametro3.ParameterName = "Email";
                parametro3.DbType = DbType.String;
                parametro3.Value = usermail;
                comando.Parameters.Add(parametro3);

                DbDataReader leitor = comando.ExecuteReader();
               
               

            }
        }
    }

    O problema agora é que não sei efectuar o teste para a devolução do valor booleano, que penso que deve ser após o execute reader.
    Como ainda estou a iniciar na linguagem C# e utilização stored procedures não tenho bem a certeza se estou a fazer bem.
    Se me poderem ajudar a completar este pequeno prototipo agradecia

    Alves



    terça-feira, 22 de maio de 2007 23:33

Respostas

Todas as Respostas

  • Boas amigo,

     

    Tente colocar isso no final da sua função para tratar o retorno que vc precisa:

    if (leitor.HasRows == true)

    {

    return true;

    }

    else

    {

    return false;

    }

    terça-feira, 17 de julho de 2007 12:58
  • Olá Daniel Bragagnolo...! Muito obrigado por responder ao meu pedido de ajuda... Sim era isto mesmo...
    O meu pedido de desculpas pelo atraso no agradecimento... Mas como eu fiz pedido em maio e a resposta tardou um pouco pensei que ninguém ía responder acabei por "desistir" de consultar o meu post...

    De qualquer forma muito obrigado e mais uma vez desculpa o atraso no agradecimento

    Obrigado

    Alves
    sexta-feira, 24 de agosto de 2007 11:01
  • ok Alves, sem problemas.

    Marque a resposta por favor.

     

    Abraço!

    segunda-feira, 27 de agosto de 2007 16:22