Jump to content
joaocarlos07

Ajuda inserir em textbox

Recommended Posts

joaocarlos07

Boa noite a todos eu estou aqui num dilema com um código que ja dei a volta a cabeça e nao saiu do sitio :x  eu estou a criar um software para pda em c# , é o seguinte eu tenho o meu form das vendas e o utilizador pode inserir os produtos que quer comprar manualmente seleccionando o produto ou entao pode passar o codigo de barras , seleccionar os produtos ja funciona o codigo de barras é que esta a dar mais trabalho :x basicamente o que o codigo de barras faz é escrever onde estiver o ponteiro o numero que lé o leitor de barras ou seja a minha ideia foi meter uma textbox, onde sempre que fazia alguma coisa no fim fazia textbox1.focus() ou seja a textbox esta sempre pronta para passar o artigo no leitor , é o seguinte eu fiz um codigo no evento da textbox so que não funciona bem quando passo o artigo por vezes insere em branco outras vezes insere-me por exemplo 3 vezes o mesmo artigo so passando uma vez o leitor . Se alguem me poder ajudar agradeço espero ter sido claro mas alguma duvida é so dizer

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {

            }
            else
            {
                //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

Sim isso eu ja tinha feito com o textbox1.focus(); mas o problema é que sempre que passo o artigo no leitor ele insere-me o produto do codigo de barras e insere-me 2 em branco , ou entao insere-me 3 iguais :x


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
bioshock

Mas ele insere-te campos em branco onde? Na textbox? Se sim, será provavelmente por causa do ciclo que ali tens. Se tiveres campos em branco na base de dados, é normal que te insira.

Share this post


Link to post
Share on other sites
joaocarlos07

Siim, um com isto quero inserir na bd o que aparece na textbox para depois listar os dados noutro lado mas insere-me em branco ou por vezes repetido :s A minha ideia era ter um sitio no form que tivesse sempre focus para a qualquer altura passar o codigo de barras e ele me inserir na bd .

Obrigado desde ja


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
infopc

então?! podes atribuir o evento keypress ao próprio form, já agora porque perde a textbox o focus?


O que não tem solução, solucionado esta...

Share this post


Link to post
Share on other sites
joaocarlos07

Mas a questão não é a textbox perder o focus é o seguinte eu tenho um leitor de codigo de barras e o que esse leitor faz é sempre que lé um codigo de barras ele escreve onde o ponteiro estiver seleccionado ou seja a minha ideia é o ponteiro estar na textbox com o focus e funciona mas o problema é quando eu passo o codigo de barras e ele me escreve na textbox tem de me inserir na bd so aquele produto que corresponde ao numero que esta na textbox e nao faz isso :s


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
nl_fonseca

eu já fiz um programa para ler codigo de barras.

e além de ficar muito melhor, em aparência, é muito mais facil por o codigo de barras numa label em vez de uma textbox, pois nao é preciso estar la o ponteiro.

Agora tens é de arranjar uma maneira para ao fim de ler o codigo todo inserir na BD, mas não estou a ver. é mais facil um botão, mas não é tão automatico.

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

×
×
  • 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.