Ragazzi sto impazzendo con l'update del datagrid!
Vi spiego la sequenza di operazioni:
Clicco sul pulsante modifica.
Il datagrid mi va in editmode.
Modifico il valore.
Clicco sul pulsante update.
A questo punto conitnuo a visualizzare nel datagrid il vecchio valore.
Se ricarico la pagina lo visualizza correttamente, perchè in pratica inserisce il nuovo valore nel database, ma continua a visualizzare quello vecchio finchè non ricarico la pagina.
Spero di essere stato chiaro, vi posto unpò di codice:
codice:
'QUESTA E' LA SUB DEL PAGE_LOAD
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Origine()
If (Not Me.IsPostBack) Then
binda()
End If
End Sub
'QUESTA E' LA SUB DOVE DEFINISCO LA SORGENTE DEL DATAGRID
Sub Origine()
Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database/lafer.mdb"))
Dim Adapter As New OleDbDataAdapter("SELECT * FROM tab_sup_cat", conn)
Dim Adapter2 As New OleDbDataAdapter("Select * from tab_cat", conn) '("Select tabella1.id, tabella2.campofiglio from tabella1,tabella2 where tabella1.Id=tabella2.rif", conn)
Dim Adapter3 As New OleDbDataAdapter("Select * from tab_sotto_cat", conn) '("Select tabella2.id, tabella3.campofiglio from tabella2,tabella3 where tabella2.Id=tabella3.rif", conn)
Adapter.Fill(ds, "table1") 'sup_cat
Adapter2.Fill(ds, "table2") 'cat
Adapter3.Fill(ds, "table3") 'sotto_cat
Dim Parent As DataColumn
Dim Child As DataColumn
Parent = ds.Tables("table1").Columns("ID_sup_cat")
Child = ds.Tables("table2").Columns("id_sup_cat")
Dim dr As DataRelation = New DataRelation("newrelation", Parent, Child, False)
ds.Relations.Add(dr)
Parent = ds.Tables("table2").Columns("ID_cat")
Child = ds.Tables("table3").Columns("id_cat")
dr = New DataRelation("newrelation2", Parent, Child, False)
ds.Relations.Add(dr)
End Sub
'QUESTA E' LA SUB DEL DATABINDING
Sub binda()
HG1.DataSource = ds
HG1.DataMember = "table1"
HG1.DataBind()
End Sub
'QUESTA E' LA SUB DEL COMANDO EDIT
Sub ModificaDataGrid(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
HG1.EditItemIndex = e.Item.ItemIndex
binda()
End Sub
E QUESTA E' LA SUB DEL COMANDO UPDATE
Sub AggiornaDataGrid(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim Conn As Data.OleDb.OleDbConnection
Dim MySQL3 As String
Dim MyCmd As Data.OleDb.OleDbCommand
Dim id_sup_cat, nome_sup_cat As String
'ID_sup_cat = CType(e.Item.Cells(0).Controls(0), TextBox).Text
id_sup_cat = "12"
nome_sup_cat = CType(e.Item.Cells(1).Controls(0), TextBox).Text
Conn = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database/lafer.mdb"))
Conn.Open()
MySQL3 = "UPDATE tab_sup_cat SET nome_sup_cat = '" & nome_sup_cat & "' WHERE ID_sup_cat = " & id_sup_cat
MyCmd = New Data.OleDb.OleDbCommand(MySQL3)
MyCmd.Connection = Conn
MyCmd.ExecuteNonQuery()
HG1.EditItemIndex = -1
binda()
End Sub
Quale l'errore che faccio?
Una volta risolto questo ho bisogno anche di un altro aiutino, inmerito alla sub dell'UPDATE