Usuário com melhor resposta
Pesquisar

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 ???????
}
}
}
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
-
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.
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.
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.
-
È 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?
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);
}
}
} -
-
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
-
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.
-