Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

[Resolvido] Checkboxlist vários registros no SQL

Recommended Posts

Tenho um checkboxlist com várias opções ao inserir no sql deve ser gravada uma opção selecionada por registro, por exemplo, se for selecionado a 1 e a 5 opção, deve ser gravado duas linha na tabela do banco da seguinte forma : questão=33,resposta=1 e questão=33, resposta=5, como consigo fazer isso?

Atenciosamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu consegui colocando o insert dentro daquele loop

o que acontece é q funcionou pq estao todos os checkboxlist na mesma e última página. como eu fiz:

Dim q33 As String = ""
		Dim pos As CheckBoxList = cbl_pos.FindControl("cbl_pos") ' Recuperamos nosso checkboxlist
		'Navegamos nos itens do checkboxlist para verificar quais estão selecionados
		For i As Integer = 0 To pos.Items.Count - 1
			If pos.Items(i).Selected Then
				q33 = pos.Items(i).Value
				sqlGrava.InsertCommand = "Insert into tabela(questao,tipo_questao,resposta,email) values (33,1,'" & q33 & "','" & Session("q1") & "')"
				sqlGrava.Insert()
			End If
		Next
só que agora estão em várias páginas, tenho vários checkboxlist, e preciso fazer o insert somente na última página do questionário, tem q ser feito em ordem pois é um questionário, como devo colocar o código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta armazenando os checkboxlist que foram selecionados nos outros formulários?

 

Abraços...

to usando session, mas se deixo o insert na ultima pagina ele n faz o loop e se deixo em cada página onde tem o checklist ele acaba perdendo a ordem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que ler esta session e separar os arquivos em uma Array, depois vai ter que fazer um for como fez da outra vez, mas baseados nos itens desse Array. Se estiver separando os itens com virgula, utilize o Split para separa-los.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que ler esta session e separar os arquivos em uma Array, depois vai ter que fazer um for como fez da outra vez, mas baseados nos itens desse Array. Se estiver separando os itens com virgula, utilize o Split para separa-los.

 

Abraços...

pode me ajudar n sei como faz array

não coloquei separado por vírgula

no caso como fica e onde fica o insert?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não adianta abrir outro tópico com o mesmo assunto. E caso alguém não responde não fique fazendp up no seu tópico. Nem sempre tem gente disponivel para escrever o código para você. Tente escrever o código e ir tirando as dúvidas aqui.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não adianta abrir outro tópico com o mesmo assunto. E caso alguém não responde não fique fazendp up no seu tópico. Nem sempre tem gente disponivel para escrever o código para você. Tente escrever o código e ir tirando as dúvidas aqui.

 

Abraços...

acontece que eu nunca criei uma array, e pelo q andei pesquisando não entendi como fazer....

desculpe se está parecendo q quero o código pronto, só n sei como começar e já vasculhei a net atrás de exemplos e não encontrei algo que se encaixe dentro do q eu preciso

Peço desculpas e se puder me ajudar agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma olhada nesse exemplo que eu fiz:

 

Session.Add("sCheckBox", "1")
		Session("sCheckBox") += ",2"
		Session("sCheckBox") += ",3"
		Session("sCheckBox") += ",4"

		Dim myArray As Array
		myArray = Session("sCheckBox").ToString.Split(",")

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma olhada nesse exemplo que eu fiz:

 

Session.Add("sCheckBox", "1")
		Session("sCheckBox") += ",2"
		Session("sCheckBox") += ",3"
		Session("sCheckBox") += ",4"

		Dim myArray As Array
		myArray = Session("sCheckBox").ToString.Split(",")

Abraços...

para cada item do meu checkboxlist eu preciso cria uma Session.Add("sCheckBox", "1") onde sCheckbox é o nome do checkBoxlist e 1 é o valor? O q significa +=? e minha maior dúvida é onde coloco o for e o insert?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Session.Add utiliza quando cria a session na primeira vez. O += é pra concatenar, ele pega o valor já existente na sesssion e adiciona o valor que esta na frente do igual.

Depois que conseguir criar sua Array, você fará um for pela quantidade de itens que tem nela, o for é igual ao que fizemos em outro tópico.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Session.Add utiliza quando cria a session na primeira vez. O += é pra concatenar, ele pega o valor já existente na sesssion e adiciona o valor que esta na frente do igual.

Depois que conseguir criar sua Array, você fará um for pela quantidade de itens que tem nela, o for é igual ao que fizemos em outro tópico.

 

Abraços...

Está dando esse erro no contador do for: for loop control variable cannot be of type 'System.Array' because the type does not support the requeried operators.

Session.Add("cbl_grad", "1")

		Dim myArray As Array
		For i As Array = 0 To cbl_grad.Items.Count - 1
			If cbl_grad.Items(i).Selected Then
				myArray = cbl_grad.Items(i).Value
			End If
		Next
		myArray = Session("cbl_grad").ToString.Split(",")

Tenho que adicionar uma session pra cada item do checkboxlist ou com esse loop ele já verifica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse primeiro for você vai alimentar somente sua Session, você só vai usar a Array na sua ultima página. Nas anteriores você vai sempre concatenando na session.

 

Abraços...

então eu deixo só as linhas da session e tiro o for ou como eu faço o for com array?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nas primeiras páginas você precisa do for mas para alimentar sua session, você só vai mexer com a Array na última página.

Vamos por partes você já esta conseguindo armazenar os valores do seus checkbox todos em uma única session?

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nas primeiras páginas você precisa do for mas para alimentar sua session, você só vai mexer com a Array na última página.

Vamos por partes você já esta conseguindo armazenar os valores do seus checkbox todos em uma única session?

 

Abraços...

acho q não eu fiz daquela forma q coloquei aqui ele esta dando aquele erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nas primeiras páginas você precisa do for mas para alimentar sua session, você só vai mexer com a Array na última página.

Vamos por partes você já esta conseguindo armazenar os valores do seus checkbox todos em uma única session?

 

Abraços...

sCheckBox é o nome do CheckBoxList correto?

E o número 1 é o valor ?

para guarda-lo numa session nao preciso colocar:

Session.Add("sCheckBox", "1")
		Session("sCheckBox") += ",2"
		Session("sCheckBox") += ",3"
		Session("sCheckBox") += ",4"

		Dim myArray As Array
		myArray = Session("sCheckBox").ToString.Split(",")

se eu fizer dessa forma ele guarda na session,igual fizemos no outro caso, mas onde entra o array e o insert:

Dim q10 As String = ""
		Dim grad As CheckBoxList = cbl_grad.FindControl("cbl_grad") ' Recuperamos nosso checkboxlist
		' Navegamos nos itens do checkboxlist para verificar quais estão selecionados
		For i As Integer = 0 To grad.Items.Count - 1
		   If grad.Items(i).Selected Then
				q10 = q10 & grad.Items(i).Value
		End If
		Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza então vamos pra segunda parte, la na sua última página onde você já tem todos os valores armazenados em sua session.

Agora você fará um for com base na quantidade de items da sua Array.

Tente e poste o código desse for com base na array.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.