Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aline C. S.

Conexão C# e ACCESS

Recommended Posts

Eu sou inicante em programar com C#

Gostaria de ajuda pra saber o que há de errado no código abaixo:

 

case 4:
                    {
                        cmdMostrar = new OleDbCommand ("select * from Cliente where codigo='" + txtCod.Text +"'", cn);
                        dtReader = cmdMostrar.ExecuteReader();

                        if (dtReader.HasRows)
                        {
                            while (dtReader.Read())
                            {
                                this.txtNome.Text = dtReader["Nome"].ToString();
                                this.txtTel.Text = dtReader ["Telefone"].ToString();
                            }
                        }
                        else
                            MessageBox.Show("Não há cliente cadastrado","Mensagem:");
                        TravarCampo();
                        LiberarBotao();
                    }
                    break;

Era pra mostrar um cadastro, em uma tela de cadastro de clientes. Esta dando a seguinte mensagem: dtReader = cmdMostrar.ExecuteReader(); Tipo de dados incompatível na expressão de critério.

 

Se Alguém poder me ajudar. Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro alguém move esse tópico pra .NET!!

 

Aline, provavelmente seu sql esta errado.

declare uma variável string desta forma:

 

string sql = "select * from Cliente where codigo='" + txtCod.Text +"'"

Com o debug poste o que esta retornando na sua variável sql. Eu acho que o seu campo txtCod.Text esta vazio.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aline,

 

Antes de você rodar o método ExecuteReader, é necessário abrir a conexão. Ficaria desta forma:

cmdMostrar = new OleDbCommand ("select * from Cliente where codigo='" + txtCod.Text +"'", cn);                         
//Abre a conexão
cn.Open();
dtReader = cmdMostrar.ExecuteReader();

if (dtReader.HasRows)
{
   while (dtReader.Read())
   {
      this.txtNome.Text = dtReader["Nome"].ToString();
      this.txtTel.Text = dtReader ["Telefone"].ToString();
   }
}
else
   MessageBox.Show("Não há cliente cadastrado","Mensagem:");

//Após o uso do reader, fecha a Conexão
cn.Close();

Caso não seja isso, de uma olhada se a variável "dtReader" é do tipo "OleDbDataReader", e não "SqlDataReader".

Outra situação, como nosso amigo quintelab citou, pode ser que o campo "codigo" da tabela só aceite números e a propriedade "txtCod.Text" está vindo vazia, ou com algum valor diferente de um número.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.