Array
(
)

Problemas com botao update no Datagrid

Neomatrix
   - 23 jan 2008

Olá Galera, sou iniciante em ASP.net, criei um sistema simples para cadastro com: nome, endereço, bairro, cidade, codigo. depois numa pagina separada coloquei um Datagrid com os botoes de edição(editar,salvar,cancelar) e um botao para deletar.

Só que nessa pagina de edição está dando uns problemas que eu ainda desconheço, quando eu removo o botao deletar consigo editar e salvar os campos no Datagrid, mas quando coloco o botao para deletar e tento editar os campos vai para uma pagina de erro:

Server Error in ´/´ Application.
--------------------------------------------------------------------------------

Unable to cast object of type ´System.Web.UI.LiteralControl´ to type ´System.Web.UI.WebControls.TextBox´.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Unable to cast object of type ´System.Web.UI.LiteralControl´ to type ´System.Web.UI.WebControls.TextBox´.

Source Error:

O codigo dessa pagina esta aqui:

Dim nome, endereco, bairro, cidade, MySQL as string
Dim myConn As OleDbConnection
dim oDadapter As OleDbDataAdapter
Dim oDataSet As DataSet
Dim i As Integer

Sub Page_Load(Sender As Object, E As EventArgs)
If Not Page.IsPostBack Then
BindData()
End If
End Sub

Public sub BindData()
´CARREGA A TABELA
Dim strCaminho As String = Server.MapPath(´/BD/Basedados.mdb´)
myConn = New OleDbConnection(´Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ´ & strCaminho & ´;´)
MySQL = ´SELECT * FROM Tabela´

oDadapter = New OleDbDataAdapter(MySQL, myConn)
´Preenche o DataSet com o conteúdo selecionado da tabela
oDataSet = New DataSet
oDadapter.Fill(oDataSet, ´Tabela´)

DataGrid1.DataSource = oDataSet.Tables(´Tabela´).DefaultView
DataGrid1.DataBind()
end sub

Public Sub DataGrid_Edit(Source As Object, E As DataGridCommandEventArgs)
Datagrid1.EditItemIndex = E.Item.ItemIndex
BindData()
End Sub

Public Sub DataGrid_Cancel(Source As Object, E As DataGridCommandEventArgs)
Datagrid1.EditItemIndex = -1
BindData()
End Sub

Public Sub DataGrid_Atualiza(Source As Object, Byval E As DataGridCommandEventArgs)
Dim myCommand As OleDbCommand
Dim txtNome As TextBox = E.Item.Cells(1).Controls(0)
Dim txtEndereço As TextBox = E.Item.Cells(2).Controls(0)
Dim txtBairro As TextBox = E.Item.Cells(3).Controls(0)
Dim txtCidade As TextBox = E.Item.Cells(4).Controls(0)
Dim txtCodigo As TextBox = E.Item.Cells(5).Controls(0)

Dim strCaminho As String = Server.MapPath(´/BD/Basedados.mdb´)
myConn = New OleDbConnection(´Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ´ & strCaminho & ´;´)

MySQL = ´UPDATE Tabela SET nome = @nome, endereço = @endereço ´ & _
´, bairro = @bairro, cidade = @cidade ´ & _
´WHERE codigo = @codigo´

myCommand = New OleDbCommand(MySQL, myConn)
myCommand.Parameters.Add(New OleDbParameter(´@nome´, txtNome.text))
myCommand.Parameters.Add(New OleDbParameter(´@endereço´, txtEndereço.text))
myCommand.Parameters.Add(New OleDbParameter(´@bairro´, txtBairro.text))
myCommand.Parameters.Add(New OleDbParameter(´@cidade´, txtCidade.text))
myCommand.Parameters.Add(New OleDbParameter(´@Codigo´, Convert.ToInt32(txtCodigo.text)))

myConn.Open()
myCommand.ExecuteNonQuery()
myConn.close()
DataGrid1.EditItemIndex = -1
BindData()

End Sub

Private Sub DataGrid_DeleteCommand(ByVal source As System.Object, e As DataGridCommandEventArgs)
Dim myCommand As OleDbCommand
Dim strCaminho As String = Server.MapPath(´/BD/Basedados.mdb´)
myConn = New OleDbConnection(´Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ´ & strCaminho & ´;´)

MySQL = ´DELETE * from Tabela WHERE codigo = @codigo´
myCommand = New OleDbCommand(MySQL, myConn)
myCommand.Parameters.Add(New OleDbParameter(´@codigo´, DataGrid1.DataKeys(CInt(e.Item.ItemIndex))))

myConn.Open()
myCommand.ExecuteNonQuery()
myConn.close()
BindData()

End Sub
[/img]

Neomatrix
   - 23 jan 2008

Alguem pode me ajudar? ficarei muito agradecido!!^^

Juniorbonds
   - 23 jan 2008

Brother! Te mandei uma mensagem no Hotmail, com um projeto que fiz a um tempo atrás... vê se ajuda. :!: :!: :!:

:lol:

Abs Brow!!!!