124 messaggi dal 28 giugno 2001
Ciao a tutti ho una funzione che riporto qui sotto che richiamo passando come parametro un dataset che dovrebbe essere inserito in toto in una tabella di un db.

Public Function InsertINTODB(ByVal DSImmagini As DataSet)
Dim Conn As New SqlConnection("Data source=localhost;integrated security=sspi;
initial catalog=db;")
Dim TempDA As SqlDataAdapter = New SqlDataAdapter
TempDA.InsertCommand = New SqlCommand("INSERT INTO pmf_fototemp (Filename,
Path, descrizione, keyword, citta, evento, categorie, data_creazione, fotografo)

VALUES (@Nomefile, @Percorso, @Descrizione, @Keyword, @Citta, @Evento, @Categorie, @DataC, @Fotografo)", Conn)

Dim workParm1 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Nomefile",
SqlDbType.VarChar, 255, "Filename")
Dim workParm2 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Percorso",
SqlDbType.VarChar, 500, "Path")
Dim workParm3 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Descrizione",
SqlDbType.VarChar, 2000, "Description")
Dim workParm4 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Keyword",
SqlDbType.VarChar, 1000, "Keywords")
Dim workParm5 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Citta",
SqlDbType.VarChar, 255, "City")
Dim workParm6 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Evento",
SqlDbType.VarChar, 255, "Transmission")
Dim workParm7 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Categorie",
SqlDbType.VarChar, 1000, "SubCategories")
Dim workParm8 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@DataC",
SqlDbType.VarChar, 50, "DateCreated")
Dim workParm9 As SqlParameter = TempDA.InsertCommand.Parameters.Add("@Fotografo",
SqlDbType.VarChar, 255, "Author")

Try
TempDA.Update(DSImmagini, "Immagini")
Catch ex As Exception

End Try
End Function

Il problema è che quando richiamo questa funzione non succede niente.
Per niente intendo che:
- non scrive niente nel database
- non da nessun errore

Ho provato a debuggare per verificare che il dataset fosse popolato ed infatti contiene le informazioni corrette. A questo punto non capisco dove sbaglio, qualcuno mi può dare qualche suggerimento?

Grazie.

Filippo
www.miecube.com
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Nel tuo codice vedo un po' di confusione.

Prima di impostare il comando per le modifiche al dataset, devi caricare il dati nel dataset dando al dataadapter il comande select, dopodiché dovrai modificare i dati nel dataset e dare il comando update del dataadapter.
Oppure puoi effettuare l'update diretto con la classe sqlCommand.
Info:
http://samples.gotdotnet.com/quickstart/aspplus/doc/webdataaccess.aspx
Ciao
124 messaggi dal 28 giugno 2001
Il fatto è che il dataset lo popolo in un'altra funzione.
Lo scenario è questo, il dataset viene popolato da select su Index Server, una volta fatto questo devo inserirlo in un database mio.

Filippo
www.miecube.com
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Fantaman <Fantaman> ha scritto:
Il fatto è che il dataset lo popolo in un'altra funzione. Lo scenario è questo, il dataset viene popolato da select su Index Server, una volta fatto questo devo inserirlo in un database mio.

Ok, l'errore è quello di creare un altro dataadapter.

Passa a questa funzione quello che hai utilizzato per polare il dataset e imposta il comando update come hai fatto.

Ciao
124 messaggi dal 28 giugno 2001
Mi manca un passaggio allora, questa è la mia funzione che carica i dati, facendo finta di mettermi in coda al codice senza richiamare altre funzioni, come faccio ad usare un oledb adapter con un sql adapter?

Public Function LoadDataNew() As DataSet
Dim strCatalog As String
strCatalog = "Foto"

Dim strQuery As String
Dim DataRif As Date
Dim DataModifica As String
Dim ts As TimeSpan

DataRif = Today.Date
DataRif = DataRif.Add(ts.FromDays(-2))
DataModifica = CStr(Year(DataRif) & "/" & Month(DataRif) & "/" & Microsoft.VisualBasic.DateAndTime.Day(DataRif))

strQuery = "SELECT Filename, Path, Description, Keywords, City, Transmission, SubCategories, DateCreated, Author FROM SCOPE()"
Dim connString As String = "Provider=MSIDXS.1;Integrated Security .='';Data Source='" & strCatalog & "'"

Dim cn As New System.Data.OleDb.OleDbConnection(connString)
Dim cmd As New System.Data.OleDb.OleDbDataAdapter(strQuery, cn)
Dim ImageDataSet As New DataSet
cmd.Fill(ImageDataSet, "Immagini")

Return ImageDataSet
End Function

Filippo
www.miecube.com
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
Fantaman <Fantaman> ha scritto:
Mi manca un passaggio allora, questa è la mia funzione che carica i dati, facendo finta di mettermi in coda al codice senza richiamare altre funzioni, come faccio ad usare un oledb adapter con un sql adapter?

Scusa, perché questo uso dell'oledbdataadapter quando puoi usare SqlDataAdapter?

Usi Sql server, vero?

Ciao
124 messaggi dal 28 giugno 2001
Ovvio, ma non puoi interrofare Index Server con un sqldataadapter, sei costretto ad usare un oledb.

Non so se hai capito il problema.
La fonte dei dati è Index Server mentre la destinazione è SQL Server, in mezzo un un dataset coi dati.

Il problema sta semplicemente nello scrivere il dataset in una botta sola nel database

Filippo
www.miecube.com

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.