cintiadel 0 Denunciar post Postado Março 7, 2009 Essa é uma ilustração da aplicação a qual estou desenvolvendo: 1º - Eu seleciono um aviso no primeiro combo, e é exibido no panel abaixo o conteúdo do aviso 2º - Nos tres combos abaixo eu seleciono os parametros para a busca 3º - Clicando em buscar é exibido os alunos de acordo com os parametros selecionados no gridview 4º - Seleciono atraves do checkbox os alunos para qual dever aparecer esse aviso, e cadastro na base de dados sql. Minha dúvida é como pegar o codigo do aluno selecionado ou dos alunos selecionado(pq pode ser mais de um)no checkbox e gravar no banco associado com o id do aviso tbm. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 7, 2009 Você pode fazer algo assim no botão: string idAviso = dropDown.SelectedValue; foreach (GridViewRow gvr in this.gvDados.Rows) { string idAluno = gvr.Cells[0].Text; bool check = (gvr.FindControl("IdCheckBox") as CheckBox).Checked; if (check) { //Insere na base de dados; } }Precisa mudar o nome do checkbox que está na grid e do dropdown de aviso. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 7, 2009 Você pode fazer algo assim no botão: string idAviso = dropDown.SelectedValue; foreach (GridViewRow gvr in this.gvDados.Rows) { string idAluno = gvr.Cells[0].Text; bool check = (gvr.FindControl("IdCheckBox") as CheckBox).Checked; if (check) { //Insere na base de dados; } }Precisa mudar o nome do checkbox que está na grid e do dropdown de aviso. isso se aplica tbm se eu clicar no checkbox q esta no header do grid, pois eles tem nomes diferentes??? Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 7, 2009 O checkbox do header vai selecionar todos os da grid, certo? Então não vai mudar nada, porque o código que eu passei vai varrer todas as linhas da grid, indepentende se o usuário clicou no header ou não. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 7, 2009 O checkbox do header vai selecionar todos os da grid, certo? Então não vai mudar nada, porque o código que eu passei vai varrer todas as linhas da grid, indepentende se o usuário clicou no header ou não. qual parametro eu pego na instrucao sql, para pegar o codigo?mais uma coisa q acho q esqueci de comentar, o valor q eu preciso gravar n é o valor do checkbox e sim o da primeira coluna do grid Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 7, 2009 pegar que código? essa linha: string idAluno = gvr.Cells[0].Text;Vai pegar o valor da primeira coluna, é esse valor que voce joga no sql.O checkbox que eu usei ali era só pra saber se está selecionado ou não. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 9, 2009 pegar que código? essa linha: string idAluno = gvr.Cells[0].Text;Vai pegar o valor da primeira coluna, é esse valor que voce joga no sql.O checkbox que eu usei ali era só pra saber se está selecionado ou não. tah dizendo q A conversão do tipo 'CheckBox' no tipo 'Boolean' não é válida. mais uma coisa esse codigo é C# e eu preciso em vb, desculpe n ter avisado antes Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Março 9, 2009 Olá, como você está fazendo o DataBind no grid view? Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 9, 2009 Olá, como você está fazendo o DataBind no grid view?atraves dos parametros da buscaele n esta pegando o valor da primeira coluna Protected Sub btnCadastrar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnCadastrar.Click Dim conexao As New Data.SqlClient.SqlConnection("conexao") Dim comando As New Data.SqlClient.SqlCommand Dim cadastrar As Data.SqlClient.SqlDataReader For Each gvr In Me.gvConsulta.Rows Dim idAluno As String = gvr.Cells(0).Text Dim check As CheckBox = gvr.FindControl("chkSelect") If check.Checked Then comando.Connection = conexao conexao.Open() comando.CommandText = "Insert into aviso_aluno(al_codigo, codigo_aviso) values ('" & idAluno & "','" & ddl_aviso.SelectedValue & "')" cadastrar = comando.ExecuteReader() cadastrar.Read() conexao.Close() End If Next End Sub Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 9, 2009 A primeira coluna é o checkbox né? Então você precisa pegar o da segunda coluna: Dim idAluno As String = gvr.Cells(1).TextE outra, use comando.ExecuteNonQuery() quando for: Update,Insert,Delete.o comando.ExecuteReader() deve ser usado somente quando for Select. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 9, 2009 A primeira coluna é o checkbox né? Então você precisa pegar o da segunda coluna: Dim idAluno As String = gvr.Cells(1).TextE outra, use comando.ExecuteNonQuery() quando for: Update,Insert,Delete.o comando.ExecuteReader() deve ser usado somente quando for Select. agora funcionou mas pra usar comando.ExecuteNonQuery() preciso alterar essa linha: Dim cadastrar As Data.SqlClient.SqlDataReader correto?o q eu coloco??? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 9, 2009 cintia para executar comandos de insert, update e delete no banco utilize o ExecuteNonQuery. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 10, 2009 cintia para executar comandos de insert, update e delete no banco utilize o ExecuteNonQuery. Abraços... mas pra usar comando.ExecuteNonQuery() tenho q mudar essa declaracao, senao da erro e o q eu coloco? Dim cadastrar As Data.SqlClient.SqlDataReader Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 10, 2009 Pode remover essa linha. E para executar faça apenas: comando.ExecuteNonQuery()Não precisa jogar o valor retornado em variável. Compartilhar este post Link para o post Compartilhar em outros sites