Ir para conteúdo

POWERED BY:

Arquivado

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

bruno_mosciatti

Problema ASP - gridView update

Recommended Posts

Galera, bom dia

 

tenho uma área restrita de um sistema simples que serve para atualizar dados de uma gridview que é alimentada por um banco de dados, e ao atualizar no gridview, atualiza no banco também... Comecei a fazer a parte de edição (editar / deletar) mas estou tendo problema.. Podem me ajudar?

 

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="admin.aspx.vb" Inherits="WebApplication2.admin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>Bem vindo, administrador</h2>
    <asp:Label ID="lblMensagem" runat="server"></asp:Label>
    <p>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="ID" ReadOnly="True" />
                <asp:BoundField DataField="nome" HeaderText="Nome" />
                <asp:BoundField DataField="area" HeaderText="Área" />
                <asp:BoundField DataField="ramal" HeaderText="Telefone" />
                <asp:BoundField DataField="eml" HeaderText="Email" />
                <asp:CommandField ShowDeleteButton="True" />
                <asp:CommandField ShowEditButton="True" />
            </Columns>
         </asp:GridView>
    </p>

        
</asp:Content>

 

 

Imports System.Data.OleDb
Public Class admin
    Inherits System.Web.UI.Page
    Dim conn As New OleDb.OleDbConnection
    Dim da As New OleDb.OleDbDataAdapter
    Dim dp As String = "Provider=Microsoft.ACE.OLEDB.12.0;Persist Security Info=False;"
    Dim dbsource As String = "DATA SOURCE = \\***"
    Dim olecom As New OleDb.OleDbCommand
    Dim dr As OleDb.OleDbDataReader
    Dim ds As DataSet = New DataSet
    Dim cmd As OleDbCommand
    Dim sSQL As String


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Session("login") = 0 Then
            Response.Redirect("restrito.aspx")
        End If

        If IsPostBack = False Then
            CarregaGrid()
        End If

    End Sub

    Public Sub CarregaGrid()


        sSQL = ""
        sSQL = "SELECT FUNCIONARIOS.id, FUNCIONARIOS.nome, FUNCIONARIOS.area, FUNCIONARIOS.Ramal, FUNCIONARIOS.CELULAR, FUNCIONARIOS.eml "
        sSQL = sSQL & "FROM(FUNCIONARIOS) "
        sSQL = sSQL & "ORDER BY FUNCIONARIOS.nome"

        conn = New OleDbConnection(dp & dbsource)
        conn.Open()
        'Try
        da = New OleDbDataAdapter(sSQL, conn)
        'preenche o dataset
        da.Fill(ds, "ramais")
        'exibe os dados no grid
        Me.GridView1.DataSource = ds
        Me.GridView1.DataBind()

        'Finally

        conn.Close()
    End Sub

    Private Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
        GridView1.PageIndex = e.NewPageIndex
        CarregaGrid()
    End Sub

    Private Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit
        GridView1.EditIndex = -1
        CarregaGrid()
    End Sub

    Private Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting
        DelItem(e.Values.Item(0))
        CarregaGrid()

    End Sub


    Private Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
        GridView1.EditIndex = e.NewEditIndex
        CarregaGrid()
        Me.GridView1.Rows.Item(e.NewEditIndex).BackColor = System.Drawing.Color.LightGray
        Me.GridView1.Rows.Item(e.NewEditIndex).ForeColor = System.Drawing.Color.Black
    End Sub

    Private Sub DelItem(ByVal sItem As String)

        sSQL = ""
        sSQL = " DELETE * FROM FUNCIONARIOS "
        sSQL = sSQL & " WHERE id =" & sItem
        conn = New OleDbConnection(dp & dbsource)
        conn.Open()
        'Try
        cmd = New OleDbCommand(sSQL, conn)

        dr = cmd.ExecuteReader()

        dr.Close()
        'Finally
        conn.Close()
        'End Try


    End Sub

    Private Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating


        UpItem(e.NewValues.Item(1), e.NewValues.Item(2))
        GridView1.EditIndex = -1
        CarregaGrid()

        'sSQL = ""
        'sSQL = "update funcionarios set nome='Antonio Paine Neto' where id=19"

        'conn = New OleDbConnection(dp & dbsource)
        'conn.Open()
        ''Try
        'cmd = New OleDbCommand(sSQL, conn)

        'dr = cmd.ExecuteReader()

        'dr.Close()
        ''Finally
        'conn.Close()
        ''End Try
    End Sub
    Private Function UpItem(ByVal sItem1 As String, ByVal sItem2 As String)

        Dim sSQL As String
        Dim conn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader

        If sItem2 <> "" Then
            sSQL = ""
            sSQL = " UPDATE FUNCIONARIOS SET "
            sSQL = sSQL & " nome = '" & sItem2 & "', "
            sSQL = sSQL & " WHERE id ='" & sItem1 & "' "
            conn = New OleDbConnection(dp & dbsource)
            conn.Open()
            'Try
            cmd = New OleDbCommand(sSQL, conn)
            Dim rowsAffected As Integer = cmd.ExecuteNonQuery()
            dr = cmd.ExecuteReader
            If rowsAffected Then
                Me.lblMensagem.Text = "Atualizado com sucesso"
            Else
                Me.lblMensagem.Text = "Informações incorretas!"
            End If
            dr.Close()
            'Finally
            conn.Close()
            'End Try


        Else
            Me.lblMensagem.Text = "Dados incompletos!"
        End If

        CarregaGrid()

        Exit Function
    End Function


End Class

 

O erro que aparece :

 

Line 132: Dim rowsAffected As Integer = cmd.ExecuteNonQuery()

 

 

Alguém pode me ajudar?

Obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigoEst

 

e fórum é apenas de ASP Classic, porfavor poste no fórum de Plataforma .Net, e veja lá que coloquei alguns tutorias sobre GridView, e verifique o retorno de sua SQl e se esta na mesma tipagem do campo

Compartilhar este post


Link para o post
Compartilhar em outros sites

e veja lá que coloquei alguns tutorias sobre GridView, e verifique o retorno de sua SQl e se esta na mesma tipagem do campo

Compartilhar este post


Link para o post
Compartilhar em outros sites

este SQL

 

sSQL = "" sSQL = " UPDATE FUNCIONARIOS SET " sSQL = sSQL & " nome = '" & sItem2 & "', " sSQL = sSQL & " WHERE id ='" & sItem1 & "' "

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

este SQL

 

sSQL = "" sSQL = " UPDATE FUNCIONARIOS SET " sSQL = sSQL & " nome = '" & sItem2 & "', " sSQL = sSQL & " WHERE id ='" & sItem1 & "' "

 

ah sim, achei que se referia ao sqlsource. bom, o que está errado nele? como posso arrumar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write nele para ver o que esta sendo enviado como resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write nele para ver o que esta sendo enviado como resultado

 

está aparecendo isso no response.write : SELECT FUNCIONARIOS.id, FUNCIONARIOS.nome, FUNCIONARIOS.area, FUNCIONARIOS.Ramal, FUNCIONARIOS.CELULAR, FUNCIONARIOS.eml FROM(FUNCIONARIOS) ORDER BY FUNCIONARIOS.nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

os campos estão com o tipo correto

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente verifique se os tipos dos campos estão corretos e no response.write precisa ver o que esta sendo passado nas variáveis

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente verifique se os tipos dos campos estão corretos e no response.write precisa ver o que esta sendo passado nas variáveis

 

pode ser mais específico? não entendi =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

voc/~e deve verificar no seu bd o tipo de campo qual é e comparar com sua SQL para ver se esta passando os valores de forma correta , e no response.write ele precisa "printar" os dados que estão sendo passados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

voc/~e deve verificar no seu bd o tipo de campo qual é e comparar com sua SQL para ver se esta passando os valores de forma correta , e no response.write ele precisa "printar" os dados que estão sendo passados.

 

como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

abra seu bd

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro esta dando na hora de deletar ou editar o conteúdo?

 

Na verdade eu acho mais fácil você postar a sua dúvida no forum de asp.net. A sua dúvida será sanada mais rapido.

 

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro esta dando na hora de deletar ou editar o conteúdo?

 

Na verdade eu acho mais fácil você postar a sua dúvida no forum de asp.net. A sua dúvida será sanada mais rapido.

 

 

Att;

 

Na hora de fazer o Update do edit

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.