RESULTADO DA CONSULTA SQL NO TEXBOX

ROGERIOAZEVEDO 21/09/2012 18:04:08
#410202
Boa tarde galera!!!

Travei mais uma vez na minha aplicação, o pessoal aqui do fórum deve estar de saco cheio dos meus Posts

Galera, eu tinha pulado essa etapa para pedir ajuda somente quando eu realmente descobrisse o problema. Descobri!

Estou usando o seguinte código para escrever na TEXBOX o resultado de um select.


  

//####################################################################################
//////////////////////////////////////// TEXBOX VENDAS ///////////////////////////////
//####################################################################################

//Cria adaptador
SqlDataReader objReader1 = cmd1.ExecuteReader();

//se existir dados mostra no textbox TextBoxNome
if (objReader1.Read())
this.txbVendas.Text = objReader1[[Ô]Vendas[Ô]].ToString();

//Fecha adaptador
objReader1.Close();

txbVendas.Text = Convert.ToDouble(txbVendas.Text).ToString([Ô]C[Ô]);

//####################################################################################
////////////////////////////////////// TEXBOX SERVIÇOS ///////////////////////////////
//####################################################################################

//Cria adaptador
SqlDataReader objReader2 = cmd2.ExecuteReader();

//se existir dados mostra no textbox TextBoxNome
if (objReader2.Read())

//Fecha adaptador
objReader2.Close();

txbServs.Text = Convert.ToDouble(txbServs.Text).ToString([Ô]C[Ô]);


//####################################################################################
//////////////////////////////////////// DEVOLUÇÕES /////////////////////////////////
//####################################################################################

//Cria adaptador
SqlDataReader objReader3 = cmd3.ExecuteReader();

//se existir dados mostra no textbox TextBoxNome
if (objReader3.Read())
this.txbDevol.Text = objReader3[[Ô]Vendas[Ô]].ToString();

//Fecha adaptador
objReader3.Close();

txbDevol.Text = Convert.ToDouble(txbDevol.Text).ToString([Ô]C[Ô]);



O problema que encontrei foi o seguinte, a aplicação tem um select com parametros, esses parametros alterna 9 bancos de dados diferentes, caso um dos bancos não tenha resultado em um dos texbox acima, a aplicação apresenta erro e não preenche os dados.

Por exemplo eu escolho o banco 1 e clico em atualizar, como pode ser visto na imagem em anexo. Se nesse banco tem todas as informações, todas as TEXBOX são preenchidas corretamente, ao trocar para um outro banco, e não tiver por exemplo serviços, os texbox abaixo de serviço não são preenchidos.

Eu tentei a solução abaixo, mas aparentemente não deu resultado Coloquei um else para tentar colocar zero e o código seguir mesmo que não haja resultado.

  

//Cria adaptador
SqlDataReader objReader3 = cmd3.ExecuteReader();

//se existir dados mostra no textbox TextBoxNome
if (objReader3.Read())
this.txbDevol.Text = objReader3[[Ô]Vendas[Ô]].ToString();
else
this.txbDevol.Text = [Ô]0[Ô];

//Fecha adaptador
objReader3.Close();

txbDevol.Text = Convert.ToDouble(txbDevol.Text).ToString([Ô]C[Ô]);




Mas não solucionou o problema. Desde já agradeço a ajuda.
ROGERIOAZEVEDO 23/09/2012 21:04:28
#410299
Alguem???
ROGERIOAZEVEDO 23/09/2012 23:19:10
#410309
Acho que encontrei a solução, não sei se é a melhor solução, mas aparentemente resolveu o problema.

Isolei cada bloco dentro de um novo try como abaixo.

  

//####################################################################################
//////////////////////////////////////// TEXBOX VENDAS ///////////////////////////////
//####################################################################################

try
{


//Cria adaptador
SqlDataReader objReader1 = cmd1.ExecuteReader();

//se existir dados mostra no textbox TextBoxNome
if (objReader1.Read())
this.txbVendas.Text = objReader1[[Ô]Vendas[Ô]].ToString();

//Fecha adaptador
objReader1.Close();

txbVendas.Text = Convert.ToDouble(txbVendas.Text).ToString([Ô]C[Ô]);

}

catch
{
this.txbVendas.Text = [Ô]0[Ô];
txbVendas.Text = Convert.ToDouble(txbVendas.Text).ToString([Ô]C[Ô]);
}

Tópico encerrado , respostas não são mais permitidas