CHECKLISTBOX
amigos...
gostaria de carregar os dados do colaborador no datagridview através do checklistbox
no checklistbox eu carrego os nomes das pessoas e ao seleciona-lo gostaria de carregar os dados dos colaboradores no datagridview
sql = [Ô]select * from cons_xls where colocaborador = [ô][Ô] & CheckedListBox1.checkeditens & [Ô][ô] and not tipo is null order by data[Ô]
DataGridView1.DataSource = Consulta(sql)
algo assim
gostaria de carregar os dados do colaborador no datagridview através do checklistbox
no checklistbox eu carrego os nomes das pessoas e ao seleciona-lo gostaria de carregar os dados dos colaboradores no datagridview
sql = [Ô]select * from cons_xls where colocaborador = [ô][Ô] & CheckedListBox1.checkeditens & [Ô][ô] and not tipo is null order by data[Ô]
DataGridView1.DataSource = Consulta(sql)
algo assim
Ok. A questão é concatenar os Ãtens na instrução.
Observações que nada tem á ver com sua dúvida, e nem sei se de fato você precisa, mas que podem ser úteis:
1. Evite ao máximo o uso de [Ô]SELECT *...[Ô]. Procure sempre definir os nomes dos campos, mesmo que sejam todos os da(s) tabela(s). Isso reduz o delay e minimiza o risco de consultas com campos [Ô]dobrados[Ô].
2. Evite o uso de palavras reservadas ao nomear um campo de um banco de dados (neste caso, [Ô]data[Ô]), pois ainda que funcionem, mais cedo ou mais tarde causarão problemas, e não auxiliam na compreenção das estruturas. Há palavras reservadas comuns aos mecanismos, mas várias são exclusivas de um mecanismo especÃfico. As palavras reservadas de cada mecanismo de dados podem ser listadas em uma tabela por meio do método GetSchema (iConnection), por exemplo:
...
Dim lista As String = [Ô]IN([Ô]
Dim iTot As Integer = (CheckedListBox1.CheckedItems.Count -1)
For iPos As Integer = 0 To (iTot-1)
lista &= String.Format([Ô] [ô]{0}[ô] [Ô], CheckedListBox1.CheckedItems(iPos))
If (iPos < iTot) Then lista &=[Ô],[Ô]
Next
lista &= [Ô])[Ô]
DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where (colocaborador [Ô]& lista &[Ô]) and not (tipo is null) order by data[Ô])
...
Observações que nada tem á ver com sua dúvida, e nem sei se de fato você precisa, mas que podem ser úteis:
1. Evite ao máximo o uso de [Ô]SELECT *...[Ô]. Procure sempre definir os nomes dos campos, mesmo que sejam todos os da(s) tabela(s). Isso reduz o delay e minimiza o risco de consultas com campos [Ô]dobrados[Ô].
2. Evite o uso de palavras reservadas ao nomear um campo de um banco de dados (neste caso, [Ô]data[Ô]), pois ainda que funcionem, mais cedo ou mais tarde causarão problemas, e não auxiliam na compreenção das estruturas. Há palavras reservadas comuns aos mecanismos, mas várias são exclusivas de um mecanismo especÃfico. As palavras reservadas de cada mecanismo de dados podem ser listadas em uma tabela por meio do método GetSchema (iConnection), por exemplo:
Dim tbReservadas As Data.Datatable = mConector.GetSchema([Ô]ReservedWords[Ô])
professor...
esta dando erro:
Erro de sintaxe (operador faltando) na expressão de consulta [ô](colocaborador IN()) and not (tipo is null)[ô].
esta dando erro:
Erro de sintaxe (operador faltando) na expressão de consulta [ô](colocaborador IN()) and not (tipo is null)[ô].
GALERA...
ESTOU USANDO O SEGUINTE CODIGO PARA CARREGAR NO DATAGRID OS DADOS DO ITEM SELECIONADO
Dim item As String = CheckedListBox1.SelectedItem
Select Case e.NewValue
Case CheckState.Checked
sql = [Ô]select * from cons_xls where COLABORADOR = [ô][Ô] & item & [Ô][ô][Ô]
DataGridView1.DataSource = Consulta(sql)
End Select
PORéM ELE MOSTRA APENAS OS DADOS DE 1 ITEM MARCADO E GOSTARIA DE QUE NO GRID FOSSE CARREGADO OS DADOS DE TODOS QUE FORAM MARCADOS
GRATO
ESTOU USANDO O SEGUINTE CODIGO PARA CARREGAR NO DATAGRID OS DADOS DO ITEM SELECIONADO
Dim item As String = CheckedListBox1.SelectedItem
Select Case e.NewValue
Case CheckState.Checked
sql = [Ô]select * from cons_xls where COLABORADOR = [ô][Ô] & item & [Ô][ô][Ô]
DataGridView1.DataSource = Consulta(sql)
End Select
PORéM ELE MOSTRA APENAS OS DADOS DE 1 ITEM MARCADO E GOSTARIA DE QUE NO GRID FOSSE CARREGADO OS DADOS DE TODOS QUE FORAM MARCADOS
GRATO
Ok, e foi por essa razão que usamos o loop. Vamos á ele:
...
Dim lista As String = [Ô]IN([Ô] [ô]Aqui nós estamos iniciando o loop, ok?
Dim iTot As Integer = (CheckedListBox1.CheckedItems.Count -1)
For iPos As Integer = 0 To (iTot-1)
[ô]Aqui, cada item marcado, é adicionado á variável [Ô]lista[Ô].
lista &= String.Format([Ô] [ô]{0}[ô] [Ô], CheckedListBox1.CheckedItems(iPos))
If (iPos < iTot) Then lista &=[Ô],[Ô]
Next
lista &= [Ô])[Ô]
[ô]O resultado esperado então, será lista = [Ô]IN([ô]Item 1[ô],[ô]Item 2[ô],[ô]Item 3[ô])[Ô], por exemplo, ou então, [Ô]IN()[Ô], se nada foi marcado (Checked).
[txt-color=#e80000]
[ô]Aqui, portanto, pode ocorrer erro, sem dúvidas, caso nenhum item tenha sido marcado (carga do form, por exemplo).
[ô]A falha foi minha, pois eu não avaliei se havia ao menos 1 item marcado.
[ô] DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where (colocaborador [Ô]& lista &[Ô]) and not (tipo is null) order by data[Ô])[/txt-color]
[ô]Para resolver, vamos avaliar antes se há ou não itens (no caso, iTot deve trazer a resposta).
If (iTot > 0) Then
DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where (colocaborador [Ô]& lista &[Ô]) and not (tipo is null) order by data[Ô])
Else
DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where not (tipo is null) order by data[Ô])
End If
...
Um detalhe: CheckedListItems é a parcela da coleção Items que foi marcada (Checked). SelectedItems é a parcela da coleção Items que está selecionada, quando o controle possui a propriedade SelectionMode como MultiSimple ou MultiExtended. Items, óbvio, é a coleção completa, e, por fim, SelectedItem é sempre o item selecionado de Ãndice zero (o primeiro da coleção SelectedItems). Por esse motivo eu usei a CkeckedListItems.
E, de fato, eu devo estar mesmo com sono.... Me desculpe a falha...
...
Dim lista As String = [Ô]IN([Ô] [ô]Aqui nós estamos iniciando o loop, ok?
Dim iTot As Integer = (CheckedListBox1.CheckedItems.Count -1)
For iPos As Integer = 0 To (iTot-1)
[ô]Aqui, cada item marcado, é adicionado á variável [Ô]lista[Ô].
lista &= String.Format([Ô] [ô]{0}[ô] [Ô], CheckedListBox1.CheckedItems(iPos))
If (iPos < iTot) Then lista &=[Ô],[Ô]
Next
lista &= [Ô])[Ô]
[ô]O resultado esperado então, será lista = [Ô]IN([ô]Item 1[ô],[ô]Item 2[ô],[ô]Item 3[ô])[Ô], por exemplo, ou então, [Ô]IN()[Ô], se nada foi marcado (Checked).
[txt-color=#e80000]
[ô]Aqui, portanto, pode ocorrer erro, sem dúvidas, caso nenhum item tenha sido marcado (carga do form, por exemplo).
[ô]A falha foi minha, pois eu não avaliei se havia ao menos 1 item marcado.
[ô] DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where (colocaborador [Ô]& lista &[Ô]) and not (tipo is null) order by data[Ô])[/txt-color]
[ô]Para resolver, vamos avaliar antes se há ou não itens (no caso, iTot deve trazer a resposta).
If (iTot > 0) Then
DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where (colocaborador [Ô]& lista &[Ô]) and not (tipo is null) order by data[Ô])
Else
DataGridView1.DataSource = Consulta([Ô]select * from cons_xls where not (tipo is null) order by data[Ô])
End If
...
Um detalhe: CheckedListItems é a parcela da coleção Items que foi marcada (Checked). SelectedItems é a parcela da coleção Items que está selecionada, quando o controle possui a propriedade SelectionMode como MultiSimple ou MultiExtended. Items, óbvio, é a coleção completa, e, por fim, SelectedItem é sempre o item selecionado de Ãndice zero (o primeiro da coleção SelectedItems). Por esse motivo eu usei a CkeckedListItems.
E, de fato, eu devo estar mesmo com sono.... Me desculpe a falha...
RSRSR
AMIGO PROFESSOR...
AGORA ESTA DANDO O ERRO:
Nenhum valor foi fornecido para um ou mais parâmetros necessários.
AMIGO PROFESSOR...
AGORA ESTA DANDO O ERRO:
Nenhum valor foi fornecido para um ou mais parâmetros necessários.
Curiosidade: O que está montado na variável [Ô]lista[Ô] é o esperado, ou seja, ela contém o [Ô]IN()[Ô] onde, dentro dos parêntesis, há uma lista com o texto dos itens marcados, separados por vÃrgulas, e cada um dos têrmos, entre aspas simples, certo?
P.S.: Estou adicionando seu e-mail ao MSN. Se achar conveniente, claro, podemos conversar mais rapidamente.
P.S.: Estou adicionando seu e-mail ao MSN. Se achar conveniente, claro, podemos conversar mais rapidamente.
professor eu ja te add
iosystems@hotmail.com
me add
m_hds23@hotmail.com
referente a list
o que acontece ele esta busca na tabela os dados
iosystems@hotmail.com
me add
m_hds23@hotmail.com
referente a list
o que acontece ele esta busca na tabela os dados
Tópico encerrado , respostas não são mais permitidas