Popolare un dataset con linq
tupen
tupen non è online. Ultima attività: 28/06/2009 20.12.56tupen
il 15 novembre 2008 alle 08.44
www.semcatering.com | 178 messaggi dal 12 gennaio 2007
Salve a tutti,
vorrei popolare un dataset con linq.
Grazie anticipatamente a chi mi dice come si fa.

Massimo Sanfelici

Mantova
RE: Popolare un dataset con linq
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 15 novembre 2008 alle 11.35
lo puoi fare utilizzando le classi SqlDataAdapter e DataTable (o DataSet)

var results = from c in context.Customers
                where c.City == "London"
                select c;

SqlCommand cmd = context.GetCommand(results) as SqlCommand;

DataTable dataTable = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataTable);

Marchi Giuseppe
http://www.peppedotnet.it
RE: Popolare un dataset con linq
tupen
tupen non è online. Ultima attività: 28/06/2009 20.12.56tupen
il 16 novembre 2008 alle 08.53
www.semcatering.com | 178 messaggi dal 12 gennaio 2007
Grazie,molto interessante.Scusa se ne aprofitto,per la variazione,inserimento e cancellazione come devo procedere.Le varie query le so fare,ma come le aggiungo al SqlDataAdapter

Massimo Sanfelici

Mantova
RE: Popolare un dataset con linq
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 16 novembre 2008 alle 12.52
puoi sfruttare la classe SqlCommandBuilder, che a partire dal tuo DataAdapter, ti genera le query di insert, update e delete.

var linqQuery = from c in context.Customers
                where c.City == "London"
                select c;

SqlCommand cmd = context.GetCommand(linqQuery) as SqlCommand;

DataTable dataTable = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataTable);

SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.InsertCommand = builder.GetInsertCommand();
adapter.DeleteCommand = builder.GetDeleteCommand();
adapter.UpdateCommand = builder.GetUpdateCommand();

Marchi Giuseppe
http://www.peppedotnet.it
RE: Popolare un dataset con linq
tupen
tupen non è online. Ultima attività: 28/06/2009 20.12.56tupen
il 16 novembre 2008 alle 13.36
www.semcatering.com | 178 messaggi dal 12 gennaio 2007
Mi raccomando non ridere,probabilmente mi sfugge qualcosa,sono un novellino.
Questo è il codice:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ctx As New Dctx.DataClassesDataContext
Dim linqQuery = From c In ctx.Testata_Carrellos _
Where c.UserName = "massimo" _
Select c
Dim cmd As New SqlCommand
cmd = TryCast(ctx.GetCommand(linqQuery), SqlCommand)
Dim dataTable As New DataTable()
Dim adapter As New SqlDataAdapter(cmd)

Dim builder As New SqlCommandBuilder(adapter)
adapter.InsertCommand = builder.GetInsertCommand()
adapter.DeleteCommand = builder.GetDeleteCommand()
adapter.UpdateCommand = builder.GetUpdateCommand()
adapter.Fill(dataTable)
dataTable.Rows(1).Item(3) = "eeee"
adapter.Update(dataTable)
Me.GridView1.DataSource = dataTable
Me.GridView1.DataBind()
End Sub
In questo modo mi filtra i record ma non fa la variazione.
Se hai voglia di rispondermi mi faresti un piacere,ciao grazie.

Massimo Sanfelici

Mantova
RE: Popolare un dataset con linq
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 16 novembre 2008 alle 13.52
ma ti ritorna qualche errore in particolare ?

prova a chiamare il metodo AcceptChanges su datatable prima di eseguire la modifica.

dataTable.AcceptChanges()
dataTable.Rows(1).Item(3) = "eeee"
adapter.Update(dataTable)


io ho provato in locale e l'update viene eseguito correttamente

Marchi Giuseppe
http://www.peppedotnet.it
RE: Popolare un dataset con linq
tupen
tupen non è online. Ultima attività: 28/06/2009 20.12.56tupen
il 16 novembre 2008 alle 14.03
www.semcatering.com | 178 messaggi dal 12 gennaio 2007
Ti chiedo scusa funzionava anche senza AcceptChanges,guardavo un 'altro record.
grazie 10000000000

Massimo Sanfelici

Mantova
RE: Popolare un dataset con linq
PeppeDotNet
PeppeDotNet non è online. Ultima attività: 05/07/2009 17.20.20PeppeDotNet
il 16 novembre 2008 alle 14.06
figurati!

Marchi Giuseppe
http://www.peppedotnet.it

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.

COMMUNITY
ULTIMI MESSAGGI
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2009.6.9