Usuário com melhor resposta
Pegar dado com filter no BindingSource

Pergunta
-
Estou brincando no vb.net para pocket pc.
Estou usando:
SQL 2005 Compact
VB.net 2008
Tenho um banco com meus gastos pessoais e nele eu quero pegar apenas o nome do gasto e procuralo em outra tabela para poder pegar o id dessa outra tabela.
Se eu criar um datagrid eu consigo fazer o filtra atraves disso:
GastoResumidoBindingSource.Filter = "NomeGasto='" & txNome.text & "'"
Me.DataGrid1.Refresh()
Me.DataGrid1.Update()
Dai o resultado sai no datagrid fisico...
Mas se eu criar um datagrid atraves de variavel ele não me retorna nada, por exemplo:
Dim DGrid As New DataGrid
DGrid.DataSource = GastoResumidoBindingSource
GastoResumidoBindingSource.Filter = "NomeGasto='" & txNome.text & "'"
Me.DGrid.Refresh()
Me.DGrid.Update()
Ele me retorna erro e não faz discriminação do erro.
Alguma sugestão de como eu poderia fazer isso?
Agradeço desde já!
- Movido Fernanda SimõesModerator segunda-feira, 5 de julho de 2010 13:59 Movendo para um Forum especifico (De:VB.NET e Visual Basic)
Respostas
-
Airton,
Agora que percebi o que você está querendo dizer... Então, o problema é filtrar os dados e ter o resultado em algum lugar? Você já pensou em utilizar um DataView? Veja o exemplo abaixo:
public partial class Form3 : Form { DataTable gastosPessoaisDT = new DataTable(); public Form3() { InitializeComponent(); gastosPessoaisDT.Columns.Add("descricao", typeof(string)); gastosPessoaisDT.Columns.Add("valor", typeof(double)); gastosPessoaisDT.Rows.Add("andre", 1); gastosPessoaisDT.Rows.Add("airton", 2); gastosPessoaisDT.Rows.Add("malange", 3); } private void button1_Click(object sender, EventArgs e) { DataView gastosFiltrados = new DataView(gastosPessoaisDT); gastosFiltrados.RowFilter = "descricao LIKE '%" + textBox1.Text + "%'"; dataGrid1.DataSource = gastosFiltrados; } }
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Marcado como Resposta Airton Gomes de Lima segunda-feira, 19 de julho de 2010 17:48
Todas as Respostas
-
-
Mas ai vai dar na mesma... Só estaria procurando no conteúdo de cada campo ao invés de procurar por exatamente o conteúdo... Na verdade meu problema é que ele parece não estar criando o DataGrid por variável.
Por exemplo:
Dim DGrid As New DataGrid DGrid.DataSource = GastoResumidoBindingSource GastoResumidoBindingSource.Filter = "NomeGasto='" & txNome.text & "'" Me.DGrid.Refresh() Me.DGrid.Update()
Indiferente se eu colocar no lugar NomeGasto= ou NomeGasto like '% ele retorna erro ao usar um datagrid criado por string.
Se eu colocar um datagrid na janela dai tudo funciona normalmente :/
-
Airton,
Alguma novidade quanto a essa sua dúvida?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
-
Airton,
Agora que percebi o que você está querendo dizer... Então, o problema é filtrar os dados e ter o resultado em algum lugar? Você já pensou em utilizar um DataView? Veja o exemplo abaixo:
public partial class Form3 : Form { DataTable gastosPessoaisDT = new DataTable(); public Form3() { InitializeComponent(); gastosPessoaisDT.Columns.Add("descricao", typeof(string)); gastosPessoaisDT.Columns.Add("valor", typeof(double)); gastosPessoaisDT.Rows.Add("andre", 1); gastosPessoaisDT.Rows.Add("airton", 2); gastosPessoaisDT.Rows.Add("malange", 3); } private void button1_Click(object sender, EventArgs e) { DataView gastosFiltrados = new DataView(gastosPessoaisDT); gastosFiltrados.RowFilter = "descricao LIKE '%" + textBox1.Text + "%'"; dataGrid1.DataSource = gastosFiltrados; } }
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Marcado como Resposta Airton Gomes de Lima segunda-feira, 19 de julho de 2010 17:48
-