none
Pesquisar RRS feed

  • Pergunta

  • Bom sou novo em programação e sou um pouco ousado, e estou estudando a linguagem C.#. Estou fazendo um sistema de venda com acesso ao banco de dados do SQLServe usando o item SQL.Linq e uma Class, peguei todas as tabelas do banco e joguei para o SQL.Linq e faço o acesso em camadas do meu banco. Mas na tela de venda quando o vendedor não souber o nome ou o código do produto cadastrado no banco eu fiz um botão que abri outro form de Busca do produto, nesse outro Form coloquei apenas um TextBox e um DataGrid, o problema é eu não sei por onde começar para quando a pessoa começar a digitar o nome do produto o DataGrid ir Atualizando e mostrando o produto no Grid e quando a pessoa Der Dois Clicks o nome ou o codigo ir para TextBox da Tela de Venda e assim adicionar ou finalizar a venda ja com o o produto selecionado na DataGrid DA TELA DE VENDA.

    Vai ai o Código >

    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    // meu Banco de Dados
    using Info.DAL;

    namespace SalesPlus
    {
        public partial class FrmPesquisaProduto : Form
        {
            public FrmPesquisaProduto()
            {
                InitializeComponent();
            }

            private void FrmPesquisaProduto_Load(object sender, EventArgs e)
            {
                // Chamada do Banco de Dados com o acesso de camadas
                this.produtoBindingSource.DataSource = 
                    DataContxtFactory.DataContext.Produtos;
            }

            private void FrmPesquisaProduto_FormClosed(object sender, FormClosedEventArgs e)
            {
                // se o Form Estiver aberto ele vai da um Focus, se não ele abri o Form Novamente
                MeusFormularios.FormPesquiProduto = null;
            }

            private void CboPesquisar_TextChanged(object sender, EventArgs e)
            {
                // Camada do metodo Criado para a seleção do produto ???????
            }
        }
    }

    domingo, 1 de novembro de 2015 18:15

Respostas

  • Boa tarde.

    "Produto.Codigo" é o Codigo da categoria?

    Se não, tens de usar o código da categoria (possivelmente mudar também o nome para IdCategoria, CodCategoria, etc.)


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:31
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    segunda-feira, 2 de novembro de 2015 17:24
  • Boa tarde Walysson,

    Para pesquisa com apenas um TextBox e um DataGrid você precisar fazer da seguinte maneira.

    1º. Declare um BindindSource..

    ex. BindingSource bs = new BindingSource();

    quando for carregar a Grid, faça o seguinte.

    bs.DataSource = dt;

    dataGrid.DataSource = bs;

    2º Agora dentro do TextChange do TextBox.

    bs.Filter = "Nome like '%" + NomeTextBox.Text + "%'";

    ...

    Agora para mandar para tela de venda você pode fazer de varias maneiras.. veja  a mais fácil.

    vou deixar uma opção aqui.

    pegue o CurrentRow da grid , armazena o codigo do produto ou codigo de barras e retorne ele para a tela de venda.

    dentro da tela de venda cria um método que pegue o codigo retornado pelo tela de pesquisa produto e use para pegar os demais dados que você precisa para realizar a venda.

    obs. para o duplo clique na grid, seria a mesma coisa, no evento cellDoubleClick você vai pegar o CurrentRow da Grid.

    Espero ter ajudado.

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:31
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    terça-feira, 3 de novembro de 2015 15:50

Todas as Respostas

  • Bom dia  Walysson Damasceno,

    O ideal é que você saiba ao menos como começar ou o que está fazendo, do contrário vai fazer um emaranhado de código que depois você vai ficar perdido. Não é uma boa prática, não é como se você tivesse um código que precisa ser corrigido aqui ou alí, você não sabe por onde começar.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 2 de novembro de 2015 11:41
  • È talvez não soube me expressar quando disse que não saberia nem por onde começar, na verdade falei isso pq eu queria que alguém me ajudasse com alguma ideia. O Código para fazer isso que eu estou querendo eu tenho e sei fazer, mas não com o banco de dados do SQLServe esse é meu problema eu não consigo criar um form com apenas o TextBox e o DataGrid, quando eu digitar o nome do produto aparecer no DataGrid não consigo fazer uma conversão do Texto em Valor e obter o resultado. Se o banco fosse Access tava tudo bem pq com ele, e  sem acesso de camadas daria.

    Amigo o único que consigo é fazer uma pesquisa pelo valo ou código de cadastro da categoria. Eu coloco o ComboBox nele adiciono todas as categoria dos produtos e carrego os dados dos dois. Faço uma Public Void e chamo todos os produtos daquela categoria selecionado. Mas eu queria que fosse eu digitando o texto e já fosse aparecendo no DataGrid!  

    Mas Não consigo Fazer isso! Pode me Ajudar?

    // meu Banco de Dados
    using Info.DAL;

    namespace SalesPlus
    {
        public partial class FrmPesquisaProduto : Form
        {
            public FrmPesquisaProduto()
            {
                InitializeComponent();
            }
            

            private void FrmPesquisaProduto_Load(object sender, EventArgs e)
            {
                // Chamada do Banco de Dados com o acesso de camadas
                this.produtoBindingSource.DataSource = 
                    DataContxtFactory.DataContext.Produtos;
                this.categroiaBindingSource.DataSource = 
                    DataContxtFactory.DataContext.Categroias;
            }
            

            private void FrmPesquisaProduto_FormClosed(object sender, FormClosedEventArgs e)
            {
                // se o Form Estiver aberto ele vai da um Focus, se não ele abri o Form Novamente
                MeusFormularios.FormPesquiProduto = null;
            }

            private void CboPesquisar_TextChanged(object sender, EventArgs e)
            {
                // Camada do metodo Criado para a seleção do produto ???????
            }

            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
               groupBox2.Visible = true;
               groupBox1.Visible = false;
               checkBox1.Visible = false;
               checkBox2.Visible = true;
            }

            private void checkBox2_CheckedChanged(object sender, EventArgs e)
            {
                groupBox2.Visible = false;
                groupBox1.Visible = true;
                checkBox2.Visible = false;
                checkBox1.Visible = true;
            }

            private void BtnPesquisar_Click(object sender, EventArgs e)
            {
                // Chamada do metodo pesquisa

                this.Pesquisar((int)CboCategoria.SelectedValue);
            }
            // metodo criado para pesquisar no banco os produtos cadastrado naquela categoria
            public void Pesquisar(int codigoCategoria)
            {
                this.produtoBindingSource.DataSource =
                    DataContxtFactory.DataContext.Produtos.Where(x => x.Codigo == codigoCategoria);
            }

        }
    }

    segunda-feira, 2 de novembro de 2015 14:40
  • Eu nao gosto linq, por isso nao te posso ajudar...


    A flower cannot blossom without sunshine, and man cannot live without love.

    segunda-feira, 2 de novembro de 2015 17:14
    Moderador
  • Boa tarde.

    "Produto.Codigo" é o Codigo da categoria?

    Se não, tens de usar o código da categoria (possivelmente mudar também o nome para IdCategoria, CodCategoria, etc.)


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:31
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    segunda-feira, 2 de novembro de 2015 17:24
  • Boa tarde Walysson,

    Para pesquisa com apenas um TextBox e um DataGrid você precisar fazer da seguinte maneira.

    1º. Declare um BindindSource..

    ex. BindingSource bs = new BindingSource();

    quando for carregar a Grid, faça o seguinte.

    bs.DataSource = dt;

    dataGrid.DataSource = bs;

    2º Agora dentro do TextChange do TextBox.

    bs.Filter = "Nome like '%" + NomeTextBox.Text + "%'";

    ...

    Agora para mandar para tela de venda você pode fazer de varias maneiras.. veja  a mais fácil.

    vou deixar uma opção aqui.

    pegue o CurrentRow da grid , armazena o codigo do produto ou codigo de barras e retorne ele para a tela de venda.

    dentro da tela de venda cria um método que pegue o codigo retornado pelo tela de pesquisa produto e use para pegar os demais dados que você precisa para realizar a venda.

    obs. para o duplo clique na grid, seria a mesma coisa, no evento cellDoubleClick você vai pegar o CurrentRow da Grid.

    Espero ter ajudado.

    • Sugerido como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:31
    • Marcado como Resposta Marcos SJ terça-feira, 3 de novembro de 2015 16:58
    terça-feira, 3 de novembro de 2015 15:50
  • SimorC    Cara foi a melhor resposta que vi ate agora vlw!!!
    sexta-feira, 6 de novembro de 2015 17:36