Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    96

    ADO.NET - Aggiornare un database da un file Xml...

    Salve a tutti.

    Sto provando ad importare dei dati da un file Xml in una tabella di un DB Oracle.

    Voglio utilizzare .NET framework per sviluppare questa applicazione.

    Vi spiego i passi che seguo:
    1) carico lo Schema Xsd nel in una istanza dell'oggetto XmlDataDocument
    codice:
    myXmlDataDocument = New XmlDataDocument()
    Dim myStreamReader As StreamReader = Nothing
    Try
      myStreamReader = New StreamReader("pippo.xsd")
      myXmlDataDocument.DataSet.ReadXmlSchema(myStreamReader)
    
    Catch e As Exception
      Console.WriteLine("Eccezione: " & e.ToString())
    
    Finally
      If Not myStreamReader Is Nothing Then
        myStreamReader.Close()
      End If
    
    End Try

    2) carico il file Xml nell'XmlDataDocument
    codice:
    myXmlDataDocument.Load(xmlDataPath)
    3) cerco di fare l'Update con il DataAdapter
    codice:
    Dim myConn As New OleDbConnection("Provider=OraOLEDB.Oracle; Data Source=xxx; User Id=xxx; Password=xxx;")
    Dim myAdapter As New OleDbDataAdapter()
    myAdapter.SelectCommand = New OleDbCommand("select * from NOME_TABELLA", myConn)
    
    myAdapter.Fill(myDataset, "NOME_TABELLA")
    
    Dim myDataRowsCommandBuilder As OleDbCommandBuilder = New OleDbCommandBuilder(myAdapter)
    
    myAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
    
    myAdapter.Update(myDataset, "NOME_TABELLA")
    
    myConn.Dispose()

    Il problema è che il metodo UPDATE (del dataadapter) mi da questa eccezione:
    codice:
    Eccezione non gestita di tipo "System.InvalidOperationException" in system.data.dll
    
    Informazioni aggiuntive: Generazione SQL dinamica non supportata per un
    SelectCommand che non restituisce informazioni di 
    tabelle di base.
    Vi è capitato ? ....sapete come risolvere il problema ? So che, anzichè far generare gli statement SQL in meniera automatica, si

    possono specificare i vari comandi di UPDATE, INSERT, DELETE....ma sto cercando della documentazione all'altezza della

    situazione su questo argomento. Avreste un paio di link da suggerirmi ?

    Grazie mille a tutti coloro che interverranno alla discussione.

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    96
    ok....sto provando pure specificando i vari comandi dell'adapter, e cioè insertcommand, updatecommand, ecc...


    L'errore adesso è questo:

    codice:
    Eccezione non gestita di tipo "System.Data.OleDb.OleDbException" in system.data.dll
    il che è ancora + drammatico, in quanto mi sta dando un'eccezione generica di oledb, e quindi senza darmi nessuna indicazione sulla natura ed il motivo dell'errore.

    La prima cosa che ho pensato è stata quella dei tipi di dato. Allora ho cercato un mapping tra tipi .NET framework e tipi Oracle....ecco il link:

    http://www.able-consulting.com/ADODataTypeEnum.htm

    Ciao, e grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    96
    bene ragazzi....sono riuscito ad apdutare.

    Vedo che partecipate in tanti...

    Ho fatto generare il connection ed il dataadapter a Visual Studio...poi mi sono spulciato il codice che ha generato automaticamente....e me lo sono riutilizzato.

    Ho raggiunto il mio scopo....adesso però vorrei capire bene come funzionano i comandi (insertcommand, updatecommand, ecc.) del dataadapter...


    ...se qulcuno ha dei bei link sull'argomento da suggerirmi, li accetto molto volentieri. Grazie a tutti coloro che interverranno.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    20
    Dovrei includere un file di testo che contiene la dichiarazione di variabili application nel file global.asax
    Mi è stato consigliato di utilizzare la classe streamreader o meglio la xmlreader ma non sono riuscito a trovare nussun esempio sull'utilizzo di queste classi, potresti aiutarmi?

    Grazie
    Peace

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.