Condividi tramite


Procedura: Accedere a origini dati esterne

Quando si utilizza un modello di modulo di InfoPath, è possibile scrivere codice per accedere alle origini dati secondarie del modulo e modificare i dati in esse contenuti.

Ogni origine dati secondaria è rappresentata da un oggetto di cui è stata creata un'istanza tramite la classe DataSource e corrisponde ai dati memorizzati ottenuti da un'origine dati esterna, ad esempio un database o una query di un servizio Web. Queste origini dati vengono definite secondarie perché, quando l'utente salva un modulo di InfoPath, vengono salvati solo i dati inclusi nell'origine dati principale e non quelli inclusi nelle origini dati secondarie. La connessione a un'origine dati è rappresentata da un oggetto di cui è stata creata un'istanza tramite una delle classi di "connessione dati", ad esempio la classeWebServiceConnection, che rappresenta una connessione dati a un servizio Web XML.

L'oggetto DataSource di cui è stata creata un'istanza rappresenta la posizione di archiviazione dei dati XML restituiti da una connessione dati, ad esempio da un database o da una query di un servizio Web, e la classe di "connessione dati" rappresenta la connessione dati stessa, in base alla definizione e all'assegnazione del nome eseguite scegliendo il comando Connessioni dati dal meno Strumenti.

Il modello a oggetti di InfoPath supporta l'accesso alle origini dati secondarie di un modulo tramite l'utilizzo della classe DataSource associata alla classe DataSourceCollection.

Il modello a oggetti di InfoPath include inoltre un gruppo di classi di connessione dati, contenenti informazioni sulle connessioni dati utilizzate nel modulo.

Nota:

In Microsoft InfoPath 2003, una connessione dati viene chiamata adattatore dati.

Le connessioni dati sono di due tipi: le connessioni di query, utilizzate per ottenere i dati che vengono memorizzati in seguito in un'origine dati secondaria, e le connessioni di invio, utilizzate per inviare i dati, ad esempio a un database o a un servizio Web, e quindi copiarli dall'origine dati principale o secondaria.

Informazioni generali sulla classe DataSourceCollection

La classe DataSourceCollection include le proprietà e i metodi seguenti, che possono essere utilizzati dagli sviluppatori di moduli per gestire le istanze dell'oggetto DataSource contenute nel modulo.

Nome Descrizione

Proprietà Count

Restituisce il numero di istanze di DataSourceObject contenute nell'insieme.

Metodo GetEnumerator

Restituisce un'interfaccia IEnumerator che può essere utilizzata per eseguire un'iterazione nell'insieme.

Proprietà Item

Restituisce un riferimento all'oggetto DataSource specificato in base al valore di indice.

Proprietà Item

Restituisce un riferimento all'oggetto DataSource specificato in base al nome.

Informazioni generali sulla classe DataSource

La classe DataSource include i metodi e le proprietà seguenti, che possono essere utilizzati dagli sviluppatori di moduli per interagire con un'origine dati secondaria di InfoPath.

Nome Descrizione

Metodo CreateNavigator

Restituisce un oggetto XPathNavigator che consente di accedere all'origine dati e modificarla.

Proprietà QueryConnection

Ottiene un riferimento all'oggetto DataConnection associato.

Per eseguire la query sulla connessione dati e inserire i dati restituiti in formato XML nel nodo XML associato all'oggetto DataSource, utilizzare il metodo Execute dell'oggetto DataConnection associato.

Proprietà Name

Ottiene il nome dell'oggetto DataSource.

Proprietà ReadOnly

Ottiene un valore che indica se l'origine dati è in modalità di sola lettura.

Metodo GetNamedNodeProperty

Ottiene il valore di una proprietà denominata per il nodo XML specificato, che deve essere un nodo nonattribute nell'origine dati principale.

Metodo SetNamedNodeProperty

Imposta il valore di una proprietà denominata per il nodo XML specificato, che deve essere un nodo nonattribute nell'origine dati principale.

Informazioni generali sulle classi Data Connection

Le classi per l'accesso alle connessioni dati offrono proprietà e metodi diversi che consentono di recuperare e inviare i dati tramite connessioni alle origini dati esterne. La connessione dati associata a un oggetto DataSource dipende dal tipo di connessione dati esterna. In InfoPath vengono implementate le classi seguenti per l'accesso alle connessioni dati.

Nome Descrizione

Classe AdoQueryConnection

Esegue la query su un'origine dati ADO/OLEDB ( solo per Microsoft Access e Microsoft SQL Server).

Classe AdoSubmitConnection

Esegue l'invio a un'origine dati ADO/OLEDB (solo per Microsoft Access e Microsoft SQL Server).

Classe SharepointListQueryConnection

Esegue la query su un elenco o una raccolta documenti di SharePoint.

Classe WebServiceConnection

Esegue la connessione a un servizio Web XML.

Classe FileQueryConnection

Esegue la query su un file XML.

FileSubmitConnection

Esegue l'invio a un file XML.

EmailSubmitConnection

Esegue l'invio di un modulo come allegato di posta elettronica.

Utilizzo delle classi DataSourceCollection e DataSource

L'oggetto DataSourceCollection che rappresenta l'insieme di origini dati associate a un modello di modulo è accessibile tramite la proprietà DataSources della classe XmlForm. Se ad esempio si crea un'origine dati secondaria denominata Employeesche recupera i dati dalla tabella Employees del database Northwind, è possibile utilizzare l'oggetto DataSourceCollection per impostare un riferimento a un oggetto DataSource che rappresenta i dati recuperati.

Nell'esempio seguente viene passato il nome dell'origine dati secondaria alla proprietà della funzione di accesso della classe DataSourceCollection, la quale restituisce un riferimento all'oggetto DataSource che rappresenta i dati della tabella Employees recuperati. Il nodo XML in cui sono memorizzati i dati recuperati dall'origine dati secondaria viene visualizzato in una finestra di messaggio tramite il metodo CreateNavigator della classe DataSource per accedere alla proprietà InnerXml della classe XPathNavigator.

// Instantiate a variable to access the specified data source
// from the DataSourceCollection of the form.
DataSource myDataSource = 
   this.DataSources["Employees"];

// Display the XML data from the secondary data source.
MessageBox.Show("Data source data: " +
   myDataSource.CreateNavigator().InnerXml.ToString());
' Instantiate a variable to access the specified data source
' from the DataSourceCollection of the form.
Dim myDataSource As DataSource = _
   Me.DataSources("Employees")

' Display the XML data from the secondary data source.
MessageBox.Show("Data source data: " & _
   myDataSource.CreateNavigator().InnerXml.ToString())

Per modificare i dati contenuti in un'origine dati secondaria, utilizzare il metodo CreateNavigator della classe DataSource in modo che venga restituito un riferimento a un oggetto XPathNavigator posizionato nel nodo in cui sono memorizzati i dati secondari. È possibile utilizzare le proprietà o i metodi della classe XPathNavigator per modificare i dati. Per ulteriori informazioni, vedere Procedura: Utilizzare le classi XPathNavigator e XPathNodeIterator.

Utilizzo delle classi DataConnectionCollection e DataConnection

L'oggetto DataConnectionCollection che rappresenta l'insieme di connessioni dati associate a un modello di modulo è accessibile tramite la proprietà DataConnections della classe XmlForm. Se ad esempio si crea un'origine dati secondaria denominata Employees che recupera i dati dalla tabella Employees del database Northwind, è possibile utilizzare l'oggetto DataConnectionCollection associato al modello di modulo per impostare un riferimento all'oggetto DataConnection che rappresenta la connessione al database.

Nell'esempio seguente viene passato il nome dell'origine dati secondaria alla proprietà della funzione di accesso della classe DataConnectionCollection, la quale in questo caso restituisce un riferimento all'oggetto ADOQueryConnection che rappresenta la connessione al database Northwind. Per un corretto funzionamento, è necessario eseguire in modo esplicito il cast dell'oggetto restituito al tipo ADOQueryConnection . La proprietà Connection dell'interfaccia ADOAdapterObject viene utilizzata per visualizzare la stringa di connessione ADO in una finestra di messaggio.

// Instantiate a variable to access the specified data connection
// from the DataConnectionCollection of the form. 
// You must cast to the specific data connection type
// (ADOQueryConnection) before you can access the data connection.
ADOQueryConnection myADOConnection = 
   (ADOQueryConnection)this.DataConnections["Employees"];

// Display the connection information for the data connection.
MessageBox.Show("Connection string: " + myADOConnection.Connection);
' Instantiate a variable to access the specified data connection
' from the DataConnectionCollection of the form. 
' You must cast to the specific data connection type
' (ADOQueryConnection) before you can access the data connection.
Dim myADOConnection As ADOQueryConnection = _
   DirectCast(Me.DataConnections("Employees"), ADOQueryConnection)

' Display the connection information for the data connection.
MessageBox.Show("Connection string: " & myADOConnection.Connection)

Vedere anche

Concetti

Creazione di modelli di modulo di InfoPath supportati da Forms Services