Firebird e Asp.Net Visual Studio 2008

03/02/2011

Pessoal estou fazendo uma aplicação WEB com Firebird ADO.NET
estou com problemas para fazer o login de usuário usando o FormsAuthentication
ta tela de login tenho CNPJ e SENHA para verificar no banco FDB da tabela CLIENTE mas não sei fazer o retorno de dados para variaveis Ex: o certo é retornar um cliente apenas e desse cliente alimentar dados de variaveis...
a consulta que estou fazendo é:

public DataTable loginID(string CNPJ, string SENHA) { var con = new FbConnection(strcon); var SQL = "Select NIVEL from cliente where cnpjclie=@cnpjclie and senhaclie=@senhaclie"; var cmd = new FbCommand(SQL, con); cmd.Parameters.AddWithValue("@cnpjclie", CNPJ); cmd.Parameters.AddWithValue("@senhaclie", SENHA); con.Open(); var da = new FbDataAdapter(SQL, con); var dt = new DataTable("cliente"); da.Fill(dt); var ds = new DataSet(SQL); cmd.ExecuteNonQuery(); /* Nivel uma variavel publica */ Nivel = Convert.ToInt32(ds.Tables[0].Rows[0].ItemArray[109]); return dt; }   mas não sei retornar algo assim os dados para variavel apenas para um GRID mas não serve eu precisava alimentar campos TEXTBOX por exemplo... Obrigado Desde  já.

Sistemas Informação

Currículo

Respostas

04/02/2011

Joel Rodrigues

Bom dia.
Cara, vejamos se entendi. Sua dificuldade é apenas passar os dados dos campos da consulta para variáveis separadas? Se for isso, vou te mostrar um exemplo bem simples mas que vai dar pra você entender.Obs: Vou colocar nomes sugestivos para evitar declarações de objetos.
Aqui vou criar uma função que retorna um inteiro como código da mensagem: 0.Login realizado; 1.Senha incorreta; 2.Usuário inexixtente
public int RealizarLogin(string login, string senha){ myCommand.CommandText = "SELECT LOGIN, SENHA, NIVEL, NOME FROM CLIENTES WHERE LOGIN = @LOGIN"; myCommand.Parameters.AddWithValue("LOGIN", login); myConnection.Open(); myAdapter.Fill(myDataTable); myConnection.Close(); if(myDataTable.Rows.Count>0) { if(senha == myDataTable.Rows[0]["SENHA"].ToString()) //Se a senha estiver correta { //Passa os valores da tabela para suas variáveis. meuNome = myDataTable.Rows[0]["NOME"].ToString(); meuNivel  = Convert.ToInt16(myDataTable.Rows[0]["NIVEL"]); } else { return 1; //A senha informada é diferente da cadastrada no banco. Senha incorreta }
} else { return 2; //Não há linhas na table, logo, não encontrou o usuário }
}
Responder Citar