Array
(
)

Rotina para verificar a existência de dados.

Gari
   - 30 ago 2012

Boa noite pessoal.
Vê se vocês podem me ajudar.
Nessa rotina estou verificando se o textbox--> txtFilialOrigem.Text = " " --> está funcionando. OK
Caso não seja espaço a próxima rotina verifica se os dados são válidos. --> está funcionando. OK.
em seguida ele vai ao banco e verifica se o txtFilialOrigem.Text --> Se não Existe ele retorna o dgvfiliais vazio e dá a mensagem: MessageBox.Show("Não Existe Registros na Tabela de Filiais Com o Código Digitado!"); --> está funcionando OK.
Porém, se o código existe no Banco, o programa parece entrar em loop. Passa mais ou menos 1 minuto e sai do sistema.
Alguém, pode verificar se eu estou fazendo algo errado, por favor?
Obrigado.
Garibaldo

private void txtFilialOrigem_Leave(object sender, EventArgs e)
{
if (txtFilialOrigem.Text == " ")
{
if (MessageBox.Show("Confirma a Saída com o Campo Filial Origem Vazio ?", "Atenção", essageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
txtNomeFilialOrigem.Text = " ";
return;
}
}
else
try
{
string cNova = "";
string cA = "";
for (int t = 0; t <= txtFilialOrigem.TextLength - 1; t++)
{
cA = txtFilialOrigem.Text.Substring(t, 1);
if (!(cA != "0" && cA != "1" && cA != "2" && cA != "3" && cA != "4" && cA != "5" && cA != "6" &&
cA != "7" && cA != "8" && cA != "9" && cA != " "))
{
cNova = cNova + cA;
}
else
{
MessageBox.Show("Valor Digitado no Campo Filial Origem é Inválido!");
t = txtFilialOrigem.TextLength - 1;
txtFilialOrigem.Focus();
return;
}
}
txtFilialOrigem.Text = cNova;
int nCodFilial = Convert.ToInt32(txtFilialOrigem.Text);
FiliaisBLL obj = new FiliaisBLL();
dgvFiliais.DataSource = obj.PesquisaCodFilial(nCodFilial);
if (String.IsNullOrEmpty((string)dgvFiliais.Rows[0].Cells[0].Value))
{
MessageBox.Show("Não Existe Registros na Tabela de Filiais Com o Código Digitado!");
txtFilialOrigem.Focus();
}
else
{
txtNomeFilialOrigem.Text = obj.PesquisaCodFilial(nCodFilial).Rows[vContador]["Nome_Filial"].ToString();
}
}
catch (SqlException ex)
{
MessageBox.Show(String.Format("Não Existe Filial Origem Com Esse Código ! {0}", ex.Message));
txtFilialOrigem.Focus();
}
}

Joel Rodrigues
   - 30 ago 2012

Verifique se a linha abaixo chega a ser executada:
#Código

txtNomeFilialOrigem.Text = obj.PesquisaCodFilial(nCodFilial).Rows[vContador]["Nome_Filial"].ToString()

Se for, poste o código desse método PesquisaCodFilial.

Gari
   - 30 ago 2012

Boa tarde Joel,

Se eu fizer dessa maneira, funciona. Mostra os dados da Filial sem nenhum problema, porém, se eu digitar um Cnpj que não exista no BD o sistema também entra em loop.
Então criei uma rotina para verificar se o meu retorno do BD, ou seja, meu dgvFiliais está em branco. Nesse momento se eu digitar um Cnpj que não exista, o sistema me retorna a mensagem dizendo que não encontrou o Cnpj digitado. É isso que eu quero, porém, depois que eu criei essa rotina, se eu digitar um Cnpj que exista no BD, o sistema entra em loop.

txtFilialOrigem.Text = cNova;
int nCodFilial = Convert.ToInt32(txtFilialOrigem.Text);
FiliaisBLL obj = new FiliaisBLL();
dgvFiliais.DataSource = obj.PesquisaCodFilial(nCodFilial);
txtNomeFilialOrigem.Text = obj.PesquisaCodFilial(nCodFilial).Rows[vContador]["Nome_Filial"].ToString();

Dessa forma só funciona quando o Cnpj existe, se não existe entra em loop e depois sai do sistema.

Garibaldo