Jump to content
Sign in to follow this  
joaocarlos07

Ajuda textbox evento

Recommended Posts

joaocarlos07

Boa tarde , eu tenho um codigo feito para sempre que eu inserir um numero na textbox ele automaticamente me insere o registo correspondente ao numero na BD mas eu estou a fazer isso no evento da textbox_textchanged ou seja ele nunca me deixa acabar o numero ou seja se eu quiser inserir o 145 para ele me inserir na bd eu meto o 1 e ele insere-me logo eu ja tentei meter o valor numa label e so depois inserir mas nao consigo :s alguem me pode ajudar ?

Espero que me tenha feito perceber alguma duvida é so dizer


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Se não tiveres por onde verificar se esse valor é valido ou se esse campo não tiver um tamanho fixo, vai ser dificil.

Devias colocar o código de guardar num botão que seria do tipo AceptButton e quando clicase no enter o registo seria inserido.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Eu consigo verificar porque o numero que eu inserir na textbox tem de estar na bd guardado noutra tabela , ou seja eu nao queria usar o botao porque eu estou na parte das vendas e queria que ao passar um produto com o codigo de barras ele me inseri-se na textbox o numero (funciona) e automaticamente me inseri-se na bd na tabela das vendas . percebes ? achas que é possível fazer ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

O Leitor de códigos de barras no final da leitura manda um enter por isso não vejo nenhum problema em ter um botão.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Como assim ? Eu crio um botão que ficaria escondido e automaticamente o leitor de barras quando me insere o numero na textbox da um enter nesse botao para inserir o numero ? mas o que eu ponho no botao para ele me reconhecer o enter do leitor de barras ?

Desde ja obrigado pela ajuda


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Se eu tiver esse enter no borão consigo fazer facilmente o processo não sei é como por esse enter automaticamente no fim da leitura do codigo de barras :s


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
herty

Mas tu les o codigo de barras, supostamente o numero vem todo junto.

Logo o onChange dá para o que queres.

Share this post


Link to post
Share on other sites
joaocarlos07

sim o numero vem todo junto, onChange ? é um evento da textbox ? nunca ouvi falar podes-me explicar melhor :s

Obrigado pela ajuda


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
herty

Queria dizer TextChange.

Se o texto vem todo junto.

Ao subscreveres o TextChange da textBox.

E ao meteres o texto na textBox vai disparar o evento com o texto todo.

textBox.text = textoLidoPeloCodigoBarras;

textBox_textChange

{

tens aki o teu texto ... vai a base de dados ...

}

Share this post


Link to post
Share on other sites
joaocarlos07

Eu tinha assim e nao me funciona mesmo o codigo de barras a vir todo junto ele no evento nao apanha todo junto mas sim numero a numero :s

private void textBox1_TextChanged(object sender, EventArgs e)
        {

               //verificar se ja existe 
                liga.Open();
                //pesquisa na BD 
                SqlCeCommand cmd700 = liga.CreateCommand();
                SqlCeCommand conta100 = liga.CreateCommand();
                conta100.CommandText = " SELECT COUNT([codbarras]) AS TOTAL FROM [vendas] Where [codbarras] = '" + textbox1.Text + "' ";
                int quant1 = Convert.ToInt32(Convert.ToString(conta100.ExecuteScalar()));


                //select para guardar em variaveis o nome do produto e o preco para depois inserir

                SqlCeCommand cmd312 = new SqlCeCommand(" SELECT [nome],[preco] FROM [produtos] WHERE [codbarras] = '" + textbox1.Text + "' ", liga);
                SqlCeDataReader dr312 = cmd312.ExecuteReader();
                //percorre o sqldatareader para obter os dados
                while (dr312.Read())
                {
                    nome = Convert.ToString(dr312["nome"]);
                    preco = Convert.ToString(dr312["preco"]);

                }

                if (quant1 > 0)
                {
                    MessageBox.Show(" Produto ja inserido ");
                }
                else
                {


                    //Insert 
                    SqlCeCommand cmdd = new SqlCeCommand(" INSERT into vendas (codbarras,quantidade,nome,preco) VALUES ('" + textbox1.text + "' , '" + 1 + "', '" + nome + "','" + preco + "' )", liga);
                    cmdd.ExecuteNonQuery();
                    liga.Close();
                  
                    

                }
            
           
            
        }


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Como assim ? O leitor de barras quando le o codigo de barras insere-me na textbox1 o numero do codigo de barras e eu automaticamente queria inserir esse numero na bd entendes ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Tipo o que o leitor de barras faz é ao ler o codigo de barras escreve o numero onde o ponteiro estiver selecionado ou seja o meu ponteiro esta sempre na textbox1 e ele sempre que passo um produto escreve-me la o numero entendes ? sempre que passo o produto o numero aparece-me na textbox1


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
herty

O teu problema é que o teu leitor ta a ler muito lento o codigo ou seja ele vai lendo e vai pondo na textbox.

O que podes fazer é meter a aportar para um string temporaria e arranjares maneira de esperares pelo codigo de barras completo.

E depois de teres o codigo completo paxas tudo para a textbox e ja te resolve o problema.

Cumps :confused:

Share this post


Link to post
Share on other sites
joaocarlos07

Sim eu posso guardar o que ele me escreve numa string mas depois tenho que inserir na mesma naquele evento e volta a dar problemas :s


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
herty

Não percebes.te tens de receber primeiro os dados todos do leitor.

E so podes mandar para a textbox quando tiveres os dados todos.

Melhor mesmo é fazeres com um botao para validares xDD

Share this post


Link to post
Share on other sites
joaocarlos07

Tens alguma sugestão para fazer isso ? :s

Sim mas eu queria fazer se forma automatica tipo passar e ele aparecer , nao queria passar o leitor e ter que aceitar com o botao :s sabes alguma maneira de fazer o enter no botao automatico depois do leitor ler ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
herty

O que tens de fazer é

//ler codigo barras
private void ler_codigo_barras
{
  string codigoBarras= string.Empty; 
  ler(codigoBarras); // algo deste gerero para leres. 
  //tenta fazer um thread.sleep ou algo do genero para ver se recebes o codigo todo
  Thread.Spleep(1000);
  textBox.text= codigoBarras;
}

Share this post


Link to post
Share on other sites
herty

Ja tas a perceber o que tens de fazer?

O teu problema tá no leitor que le um numero de cada vez e nao o codigo todo.

Tens de arranjar maneira de esperares que o leitor leia tudo em antes de passares para a textBox

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.