cintiadel 0 Report post Posted November 19, 2008 desenvolvi minha aplicação me baseando nesse tutorial : http://www.macoratti.net/08/03/aspn_erg.htm só que minha rotina é para atualizar a tabela, com os aprovados. se eu tiro o sqldatasource no grid, ele me exibe o erro: A DataSourceID de 'GridView1' deve ser a identificação de um controle do tipo IDataSource. Um controle com identificação 'SqlDataSource1' não pôde ser encontrado. e se eu coloco sqldatasource no grid, ele me exibe o erro: DataSource e DataSourceID estão definidos em 'GridView1'. Remova uma definição. E nesse caso n faço a minima ideia de onde está isso, para retirar. conto com a ajuda de vocês mas uma vez Share this post Link to post Share on other sites
quintelab 91 Report post Posted November 19, 2008 Eu não achei neste artigo onde ele informa o DataSourceID, você seguiu fielmente o artigo? No artigo eu só achei o momento em que ele informa o DataSource. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted November 19, 2008 Eu não achei neste artigo onde ele informa o DataSourceID, você seguiu fielmente o artigo? No artigo eu só achei o momento em que ele informa o DataSource. Abraços... então segui sim só troquei o metódo para update, tentei colocar um sqldatasourece, mas tbm da erro.por falar em update n to consegui colocar a instrução direito tbm, n sei como colocar os todos parametros, nessa linha: Dim cmd As New SqlCommand("Update tabela where id=@id", Conn) Share this post Link to post Share on other sites
quintelab 91 Report post Posted November 19, 2008 Então não seguiu. ;) Por que precisa de um SqlDataSource? Não tem necessidade. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted November 21, 2008 Então não seguiu. ;) Por que precisa de um SqlDataSource? Não tem necessidade. Abraços... eu coloquei pra ver se parava de dar o erro, mas ai começou a dar outra mensagem de erro, como relatei acima. Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 1, 2008 Então não seguiu. ;) Por que precisa de um SqlDataSource? Não tem necessidade. Abraços... estou como o seguinte problema no grid, se eu marco os checkbox ele atualiza na base, mas se eu desmarco os checkbox nao atualiza. segue o , deveria mudar o status para false, segue meu codigo: Imports System.Data.SqlClient Partial Class _Default Inherits System.Web.UI.Page Dim strConexao As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load strConexao = ConfigurationManager.ConnectionStrings("conConnectionString").ConnectionString If Not Page.IsPostBack Then exibeGrid() End If End Sub Protected Sub btn_atualiza_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_atualiza.Click Atualiza() End Sub Sub exibeGrid() Dim Conn As New SqlConnection(strConexao) Dim dr As SqlDataReader Dim mySQL As String mySQL = "SELECT [id], [nome], [opcao], [status] FROM [tabela]" Dim cmd As New SqlCommand(mySQL, Conn) Conn.Open() dr = cmd.ExecuteReader GridView1.DataSource = dr GridView1.DataBind() Conn.Close() End Sub Sub Atualiza() Dim i As Integer For i = 0 To GridView1.Rows.Count - 1 Dim dgItem As GridViewRow = GridView1.Rows(i) Dim lblid As Label = CType(dgItem.FindControl("lblid"), Label) Dim cb As CheckBox = CType(dgItem.FindControl("ckb1"), CheckBox) If cb.Checked Then AtualizaRegistro(CInt(lblid.Text)) End If Next i exibeGrid() End Sub Sub AtualizaRegistro(ByVal intAln As Integer) Dim Conn As New SqlConnection(strConexao) Dim cmd As New SqlCommand("Update tabela set status=@status where id=@id", Conn) cmd.Parameters.Add(New SqlParameter("@id", intAln)) cmd.Parameters.Add(New SqlParameter("@status", intAln)) Conn.Open() cmd.ExecuteNonQuery() Conn.Close() End Sub End Class Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 1, 2008 Você esta fazendo uma condição: If cb.Checked Then AtualizaRegistro(CInt(lblid.Text)) End If Se você quer ambos os casos não pode fazer essa condição. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 2, 2008 Você esta fazendo uma condição: If cb.Checked Then AtualizaRegistro(CInt(lblid.Text)) End If Se você quer ambos os casos não pode fazer essa condição. Abraços... se eu tiro essas 3 linhas n atualizae se deixo so AtualizaRegistro(CInt(lblid.Text)) ele atualiza todos os registros Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 2, 2008 Então além desse if, faça outro if verificando se não esta checado, ae faz o que você quer fazer. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 2, 2008 Então além desse if, faça outro if verificando se não esta checado, ae faz o que você quer fazer. Abraços... o problema é justo mente esse n to sabendo verificar ele qdo n esta checado, como fica a sintaxe, pode me ajudar? Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 2, 2008 Tenta assim: If Not cb.Checked Then 'Seu Código End If Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 3, 2008 Tenta assim: If Not cb.Checked Then 'Seu Código End If Abraços... continua colocando todos como Truesegue o código: Sub Atualiza() Dim i As Integer For i = 0 To GridView1.Rows.Count - 1 Dim dgItem As GridViewRow = GridView1.Rows(i) Dim lblid As Label = CType(dgItem.FindControl("lblid"), Label) Dim cb As CheckBox = CType(dgItem.FindControl("ckb1"), CheckBox) If cb.Checked = True Then AtualizaRegistro(CInt(lblid.Text)) ElseIf Not cb.Checked Then AtualizaRegistro(CInt(lblid.Text)) End If Next i Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 3, 2008 Mas dentro do outro if você mandou fazer a mesma coisa. Você deve mandar executar ações diferentes. O seu AtualizaRegistro deve estar marcando como true, cria o que não faz isso. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 4, 2008 Mas dentro do outro if você mandou fazer a mesma coisa. Você deve mandar executar ações diferentes. O seu AtualizaRegistro deve estar marcando como true, cria o que não faz isso. Abraços... não to conseguindo não, tem como verificar o código que postei um pouca assima onde esta o codigo da funcao atualizaregistro?obrigada Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 4, 2008 No seu AtualizaRegistro cria um outro parâmetro para você informar se é pra marcar ou desmarcar. Ae dependendo do if que ele entrar você passa o valor que você quer para a coluna status. Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 5, 2008 No seu AtualizaRegistro cria um outro parâmetro para você informar se é pra marcar ou desmarcar. Ae dependendo do if que ele entrar você passa o valor que você quer para a coluna status. Abraços... como já disse, me perdoe a ignorância, mas só sei fazer isso qdo esá checado, e não qdo está desmarcado.se n for incomodo , poste um exemplo, se n for abusar Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 7, 2008 Não testei nada, to fazendo de cabeça aqui, deve ficar mais ou menos assim: Dim i As Integer For i = 0 To GridView1.Rows.Count - 1 Dim dgItem As GridViewRow = GridView1.Rows(i) Dim lblid As Label = CType(dgItem.FindControl("lblid"), Label) Dim cb As CheckBox = CType(dgItem.FindControl("ckb1"), CheckBox) If cb.Checked = True Then AtualizaRegistro(CInt(lblid.Text), 1) ElseIf Not cb.Checked Then AtualizaRegistro(CInt(lblid.Text), 0) End If Next i Sub AtualizaRegistro(ByVal intAln As Integer, ByVal status As Integer) Dim Conn As New SqlConnection(strConexao) Dim cmd As New SqlCommand("Update tabela set status=@status where id=@id", Conn) cmd.Parameters.Add(New SqlParameter("@id", intAln)) cmd.Parameters.Add(New SqlParameter("@status", status)) Conn.Open() cmd.ExecuteNonQuery() Conn.Close() End Sub Abraços... Share this post Link to post Share on other sites
cintiadel 0 Report post Posted December 8, 2008 funcionou mas uma vez muito obrigada Share this post Link to post Share on other sites
quintelab 91 Report post Posted December 8, 2008 http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif Share this post Link to post Share on other sites