Como eu percorro um CheckListBox
Bem, eu tenho uma tabela de triagem de documentos. Nessa tela eu preciso selecionar para o mesmo ID várias tarefas. Como é necessário fazer no mesmo ID, então normalizei o BD e criei a tabela de Tarefas. Como eu faço então para gravar as tarefas selecionadas no CheckBoxList? Exemplo: Na triagem Nro. 4(ID=4) foram selecionadas 3 tarefas, por exemplo:
Subsídio,Liminar e Sentença. Então, na tabela de Tarefas deveria estar assim:
ID ID_Triagem Tarefa
1 1 Subsídio
2 1 Liminar
3 1 Sentença
Como eu faço para percorrer cada item checado e gravar no meu BD? Uso LINQ.
Subsídio,Liminar e Sentença. Então, na tabela de Tarefas deveria estar assim:
ID ID_Triagem Tarefa
1 1 Subsídio
2 1 Liminar
3 1 Sentença
Como eu faço para percorrer cada item checado e gravar no meu BD? Uso LINQ.
Pjava
Curtidas 0
Respostas
Pjava
11/04/2013
Percorrer eu já fiz, agora o que eu preciso é ir gravando em cada iteração do loop for do meu CheckBoxList. Eu fiz assim:
for (int i = 0; i < _lista.Items.Count; i++)
{
if (_lista.Items[i].Selected)
{
cmmd.Parameters.AddWithValue("idcadastro", _cadastro);
cmmd.Parameters.AddWithValue("nmtarefa", _lista.Items[i].Value);
cmmd.ExecuteNonQuery();
}
}
Agora eu faço para gravar. Dessa forma só grava o primeiro item selecionado, e nesse exemplo eu tenho três.
for (int i = 0; i < _lista.Items.Count; i++)
{
if (_lista.Items[i].Selected)
{
cmmd.Parameters.AddWithValue("idcadastro", _cadastro);
cmmd.Parameters.AddWithValue("nmtarefa", _lista.Items[i].Value);
cmmd.ExecuteNonQuery();
}
}
Agora eu faço para gravar. Dessa forma só grava o primeiro item selecionado, e nesse exemplo eu tenho três.
GOSTEI 0
Joel Rodrigues
11/04/2013
Faça o debug do código e veja o que está sendo passado como parâmetro, verifique o Value de cada item.
GOSTEI 0
Pjava
11/04/2013
Então Joel, ele grava o primeiro item selecionado e apartir do segundo item, ele vai até o ExecuteNonQuery, mas não grava o segundo item e já pula para o Finally. Isso é que está no momento.
GOSTEI 0
Joel Rodrigues
11/04/2013
Acho que está dando uma exceção, não?
Limpe os parâmetro em cada iteração do loop:
Limpe os parâmetro em cada iteração do loop:
for (int i = 0; i < _lista.Items.Count; i++) { cmmd.Parameters.Clear(); if (_lista.Items[i].Selected) { cmmd.Parameters.AddWithValue("idcadastro", _cadastro); cmmd.Parameters.AddWithValue("nmtarefa", _lista.Items[i].Value); cmmd.ExecuteNonQuery(); } }
GOSTEI 0
Pjava
11/04/2013
Era isso mesmo. Pode fechar e se eu for colocar na conta essas ajudas de vocês, caraca! 100 anos de trampo não pagava. Obrigado por tudo.
GOSTEI 0
Joel Rodrigues
11/04/2013
Show de bola, PJava. Fico feliz que tenha resolvido o problema.
Um abraço e até a próxima.
Estou marcando este tópico como Concluído.
Um abraço e até a próxima.
Estou marcando este tópico como Concluído.
GOSTEI 0