Mensagem editada 13:54 – 19 janeiro 2012 por PauloRocha
Olá Raphael
Obrigado por responder, mas esta foi a primeira mudança que fiz: Criei um public void conforme abaixo:
public static SqlConnection GetConnection()
{
string caminhoBD = getCaminho();
caminhoBD = caminhoBD + ** Você não tem permissão para visualizar este link ** ;
string strConexao = "Server=ROCHA_VGN-PCSQLExpress; Database=Sementes; UID=sa; PWD=123"; // retorna um conexao
return new SqlConnection(strConexao);
}
// fim getConnection
No GetCaminho() Deixei como está, ou seja:
public static string getCaminho()
{
string caminhoArquivo = Application.StartupPath;
if (caminhoArquivo.IndexOf("binDebug") != -1)
{
caminhoArquivo = caminhoArquivo.Replace("binDebug", "");
}
else if (caminhoArquivo.IndexOf("binRelease") != -1)
{
caminhoArquivo = caminhoArquivo.Replace("binRelease", "");
}
return caminhoArquivo;
}
// Fim getcaminho
————————————————————————————————————————————————
No formulário de login ficou como estava, mas apesar da alteração no GetConnection() não funcionou:
using (SqlConnection con = Conexao.GetConnection())
{
try
{
con.Open();
string sql = "Select * From TbLogin Where Login=? and Senha=?";// preenche o objeto command
SqlCommand cmd = newSqlCommand(sql, con);// define os parametros
cmd.Parameters.Add(newSqlParameter("Login", Login));
cmd.Parameters.Add(newSqlParameter("Senha", Conexao.GerarHash(Senha)));// executa a consulta
dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
verificaLogin(dr); // Copiei abaixo para sua análise
}
catch (Exception ex)
{
MessageBox.Show("Erro ao efetuar a autenticao do usurio: " + ex.Message);
return;
}
finally
{
con.Close();
}
}
————————————————————-
Acredito que o problema esteja abaixo, mas não consigo entender
private void verificaLogin(SqlDataReader dr)
{
{
if (dr.Read())
{
if (dr["ativo"].Equals(false))
{
MessageBox.Show("O Usurio precisa estar habilitado! Contate o Administrador");
return;
}
else
{
nomeUsuario = dr["Login"].ToString();
Usuario.Login = nomeUsuario;
if (dr["Perfil"].Equals(1))
{
perfilUsuario ="Admin";
}
else if (dr["Perfil"].Equals(2))
{
perfilUsuario = "operador";
}
Usuario.Perfil = perfilUsuario;// ler arquivo de configurao e obtem valores
string[] dadosXml = newstring[7];
string caminhoConfig = Conexao.getCaminho();
caminhoConfig = caminhoConfig + "" + "DadosConfig.xml";
dadosXml = Conexao.leXML(caminhoConfig); // define variveis globais
Usuario.Instituicao = dadosXml[0];
Usuario.ArqConfig = dadosXml[1];
Usuario.ArqDados = dadosXml[2];
Usuario.ArqExcel = dadosXml[3];
Usuario.ArqImagem = dadosXml[4];
Usuario.ArqBackup = dadosXml[5];
}
this.DialogResult = DialogResult.OK;
}
else
{
tentativas += 1;
if (tentativas >= 3)
{
MessageBox.Show("Nmero de tentativas foi excedido!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
System.
Environment.Exit(0);// fecha aplicacao
}
else
{
txtUsuario.Clear();
txtPwd.Clear();
MessageBox.Show("Chave ou Senha invlida!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
txtUsuario.Focus();
}
}
As mensagens de erro do botão Login estão funcionando direito, mas esse do verificaLogin não se apresentam. Não sei o que estou esquecendo de alterar….. Antecipadamente grato