IF NAO RESPONDE CORRETAMENTE

JAIR2002 24/02/2012 19:56:16
#395574
Pessoal,

estou usando o codigo abaixo para verificar se um registro ja existe ou não no banco de dados SQL


//Criando objeto de conexão com o banco de dados
SqlConnection conexao = new SqlConnection(ConfigurationManager.ConnectionStrings[[Ô]StrInqueritos[Ô]].ToString());

//Criando objeto responsavel por executar o comando SQL no banco de dados
SqlCommand executor = new SqlCommand();

//Anexando ao objeto executor a conexão com o banco de dados
executor.Connection = conexao;

//Definindo o tipo de comando que será enviado ao bco de dados, nesse caso, texto
executor.CommandType = CommandType.Text;



executor.CommandText = @[Ô]Select [NOME_INDICIADO]
FROM [BDInqueritos].[dbo].[TBL_INDICIADOS]
WHERE [NOME_INDICIADO] = [ô][Ô] + TextBoxNome.Text + [Ô][ô][Ô];




//Abrindo a conexão com banco de dados para envio dos comando
executor.Connection.Open();

SqlDataReader leitor = executor.ExecuteReader();

string _retorno = string.Empty;
if (leitor.Read())
{


[ô][ô] NESTE IF SÓ ENTRA NO ELSE ALGUéM SABE ONDE ESTAR O ERRO.

if (leitor.IsDBNull(0) == true)
{



bool GravouComSussesso = AddIndiciados(TextBoxNome.Text, DropDownListRaca.SelectedItem.Text, DropDownListSexo.SelectedItem.Text, TextBoxNacionalidade.Text, DropDownListEstados.SelectedItem.Text, DropDownListNaturalidade.SelectedItem.Text, TextBoxNascimento.Text, DropDownListEstadoCivil.SelectedItem.Text, TextBoxProfissao.Text, TextBoxIdentidade.Text, TextBoxOrgaoEmissor.Text, TextBoxCpf.Text, TextBoxFone.Text, TextBoxNomedaMae.Text, TextBoxNomedoPai.Text, TextBoxRua.Text, TextBoxBairro.Text, TextBoxCidade.Text, TextBoxCep.Text);


if (GravouComSussesso)


{
LabelErro.Text = [Ô]Registro gravado com sucesso![Ô];
}

else

{

LabelErro.Visible = true;
LabelErro.Text = [Ô]houve erro na gravação[Ô];

}


}
else
{
LabelErro.Visible = true;
LabelErro.Text = [Ô]Erro: [Ô] + TextBoxNome.Text + [Ô] já cadastrado[Ô];
return;
}
}


conexao.Close();
conexao.Dispose();

O PROBLEMA QUE A PRIMEIRA CONDIÇÃO DO IF NÃO RESPONDE CORRETAMENTE
SE NAO EXISTE O REGISTRO QUE ESTOU CADASTRANDO NO BANCO RESPONDE NORMALMENTE E ENTRA NO ELSE, MAS
SE EXISTE NÃO FAZ NADA MAS DEVERIA CADASTRAR.

ALGUéM SABE ONDE ESTAR ERRO?
ASHKATCHUP 24/02/2012 20:19:11
#395581
Tira aquele if e testa


if (leitor.HasRows)
{
}
AJSO 24/02/2012 21:07:18
#395588
Resposta escolhida
Caro
O problema de entrar dentro deste IF é que essa condição senpre será verdadeira

Talves para seu método de verificação da sua SqlDataReader seja verificar se esta ou não null

seu if ficaria assim: if (reader != null) ou if (reader == null)

Isso verifica se esta null ou não.

No seu Código if (leitor.Read()) já é uma condição de ter retorno ou não do seu executor.ExecuteReader();

if (leitor.Read())
{
Console.WriteLine([Ô]Registro encontrado com sucesso!!!!!!!!!!!!!!!!.[Ô]);
}
else
{
Console.WriteLine([Ô]Registro não encontrado..............[Ô]);
}

Boa Sorte
JAIR2002 24/02/2012 21:24:48
#395589
AJSO,,

VOCÊ é O CARA VALEU MESMO DEU CERTINHO.



ASHKATCHUP,

A VOCE TAMBéM MUITO OBRIGADO PELA ATENÇÃO E TENTATIVA DE AJUDA.

GRATO A TODOS.
Tópico encerrado , respostas não são mais permitidas