Usuário com melhor resposta
Atribuir codigo de questões automaticamente

Pergunta
-
Pessoal,
Estou fazendo um formulario de pesquisa onde os alunos irão responder 23 questões, essas questões estão armazenadas em um banco de dados access, usando o codigo abaixo apresento a questão no formulario.
Gostaria de saber como posso incrementar o codigo para que os codigos das questãoes sejam passadas automaticamente, pois da forma como esta tenho que passar manualmente.
Private Sub preencherquestao() Dim dat1 As OleDbDataAdapter cn.Close() cn.Open() Dim myCommLin As OleDbCommand = cn.CreateCommand() Dim myCB As String = "SELECT * FROM tblquestoes where id=5" myCommLin.CommandText = myCB dat1 = New OleDbDataAdapter(myCommLin) Dim DS1 = New DataSet dat1.SelectCommand = myCommLin dat1.Fill(DS1, "tblquestoes") Dim dt2 As DataTable = New DataTable dt = DS1.Tables(0) Dim vquestao As String Dim vcod As String Dim dr As OleDbDataReader Dim resultado As Object = myCommLin.ExecuteScalar If Not resultado Is Nothing AndAlso Convert.ToInt32(resultado) > 0 Then dr = myCommLin.ExecuteReader If dr.HasRows Then dr.Read() vcod = dr("ID") vquestao = dr("questoes") End If codquestoes.Text = dr("ID") questao.Text = dr("questoes") dr.Close() End If cn.Close() End Sub
Julierme Felix - Aprendiz
Respostas
-
o Problema do contador é simples,como você sempre filtra pelo cont então o código vai ser sempre o mesmo.
Como te falei acima, você pode armazenar o id da próxima questão em um campo hidden no .aspx e quando salvar a questão você carregar a próxima questão com o id armazenado.
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Marcado como Resposta Julierme Felix segunda-feira, 2 de julho de 2012 11:11
Todas as Respostas
-
Olá, voce tem duas opções!
Criar todos os seus controles no codebehind
How to: Add Controls to an ASP.NET Web Page Programmatically
Dynamically Created Controls in ASP.NET
Ou criar sua estrutura dinamicamente no .aspx com ajax
Não esqueça de marcar o post como útil caso tenha te ajudado.
-
-
Pessoal
Fiz o while porem só aparece a ultima questão.
While dr.Read() vcod = dr("ID") vquestao = dr("questoes") codquestoes.Text = vcod.ToString 'dr("ID") questao.Text = vquestao.ToString 'dr("questoes") End While
Julierme Felix - Aprendiz
- Editado Julierme Felix domingo, 1 de julho de 2012 02:36
-
Pessoal,
fiz uma alteração no codigo, agora consigo que apareça a primeira questão, mas ao clicar no botão para avança não passa para a proxima questãoo mostrando novamente a primeira questão
segue o codigo
Private Sub preencherquestao() Dim dr As OleDbDataReader Dim myCommLin As OleDbCommand = cn.CreateCommand() cn.Close() cn.Open() Dim cont As Integer = 0 For cont = 1 To 2 Dim myCB As String = "SELECT * FROM tblquestoes where id=@id" myCommLin.CommandText = myCB myCommLin.Parameters.Add("@id", OleDbType.VarChar).Value = cont dr = myCommLin.ExecuteReader If dr.HasRows Then dr.Read() Dim vquestao As String Dim vcod As String vcod = dr("ID") vquestao = dr("questoes") Label1.Text = ("Nome: " + dr.GetString(1) + ", ") codquestoes.Text = vcod.ToString 'dr("ID") questao.Text = vquestao.ToString 'dr("questoes") Else Label1.Text = "Não há registros na tabela" End If dr.Close() Next cn.Close() preencherprofes() End Sub
Julierme Felix - Aprendiz
-
-
Pois bem,
As perguntas vem do banco, fiz uma query para buscar as perguntas pelo id, aí que esta a questão como passar o proximo ID para a query.
veja essa parte do codigo
Dim myCB As String = "SELECT * FROM tblquestoes where id=@id" myCommLin.CommandText = myCB myCommLin.Parameters.Add("@id", OleDbType.VarChar).Value = cont
fiz um teste usando um contador mas sempre que a pagina é carregada volta a apresentar somente a primeira questão.
Obs. exemplo: inicio o formulario chamado questoes, ele inclui a primeira questão e os nomes dos professores para serem respondida, ao clicar no botão salvar a pagina e reexibida porem gostaria que fosse a proxima questão, mas volta a questão anterior.
Julierme Felix - Aprendiz
-
o Problema do contador é simples,como você sempre filtra pelo cont então o código vai ser sempre o mesmo.
Como te falei acima, você pode armazenar o id da próxima questão em um campo hidden no .aspx e quando salvar a questão você carregar a próxima questão com o id armazenado.
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Marcado como Resposta Julierme Felix segunda-feira, 2 de julho de 2012 11:11
-
Resolvido,
Usei um campo oculto como indicado. Na pagina anterior antribui o primeiro ID da questão depois recuperei com Request.QueryString("ID") e no campo oculto armazenei Request.QueryString("ID")+1
Obrigado....
Julierme Felix - Aprendiz