Update personalizzate della datagrid sul db

lunedì 13 settembre 2004 - 12.02

SilverGecko Profilo | Newbie

Ciao a tutti!

La situazione è questa: ho una datagrid connessa tramite dataset, dataadapter e commandbuilder ad un db mysql.
Dovrei gestire l'inserimento e la modifica delle righe nel datagrid tramite una query di update e insert personalizzata (la datagrid rappresenta una tabella di dettaglio e quindi dovrei forzare un campo ad un valore preciso).
Credo che l'oggetto commandbuilder permetta di definire le query che vengono usate per il comando update, sapete come fare?

Grazie Ciao!

pecos81 Profilo | Junior Member

Ciao
per aggiungere io faccio così,
Dim myRow As DataRow
myRow = DS.Tables("Tabella").NewRow()
myRow("Col1") = txt1.Text
myRow("Col2") = Txt2.Text
...............
DS.Tables("Tabella").Rows.Add(myRow)

per modificare così

With DV(BindingContext(DV).Position)
.BeginEdit()
.Item("Col1") = txt1.Text
.Item("Col2") = txt2.Text
.EndEdit()
end with

per fare l'update sul db
Dim oCommandBuilder as New OleDb.OleDbCommandBuilder(DA)
DA.InsertCommand = oCommandBuilder.GetInsertCommand
DA.UpdateCommand = oCommandBuilder.GetUpdateCommand
DA.Update(DS, "Tabella")

spero di esserti stato di aiuto. ciao

SilverGecko Profilo | Newbie

dunque provo a fare un esempio, perchè temo di non avere le idee molto chiare con i dataset datagrid ecc ecc :)

ho 2 tabelle sul DB: CLIENTI e GRUPPI. Il campo CLIENTI.Gruppo è in relazione con il campo GRUPPI.CodiceGruppo

Ho una pagina di modifica del gruppo con una datagrid con all'interno i vari clienti.
Per il caricamento e la visualizzazione nella datagrid nessun problema tramite le istruzioni:

select_sql = "SELECT * FROM CLIENTI WHERE Gruppo='" & txtCodiceGruppo.Text & "'"
Dim DS as new DataSet
Dim DA as new OdbcDataAdapter(select_sql,DB_Connection)

DA.Fill(DS,"CLIENTI")
DataGridClienti.Datasource = DS.Tables("CLIENTI")

-- Fin qui tutto ok. --
quando io però aggiungo una riga nella datagrid, all'esecuzione del comando

DA.Update(DS,"CLIENTI")

voglio fare in modo che venga aggiunta quella riga sul db ma forzando il campo CLIENTI.Gruppo a txtCodiceGruppo.text, in pratica aggiungo un cliente del gruppo che sto visualizzando..

Spero di aver reso l'idea aiutoooo :)

pecos81 Profilo | Junior Member

fai così:
nel select command non filtrare i records, ma caricali tutti.
dopo aver riempito il dataset istanzi un dataview e lo riferisci alla tua tabella clienti.
Associ la griglia al dataview.
Filtri i record che ti servono direttamente sul dataview e salva come facevi prima.
Io faccio sempre così e anche se posso perdere in prestazioni (dipende dal nr di records) a caricare il dataset, poi però il dv è velocissimo

gigifazio Profilo | Newbie

in c# come diventa?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5