Esporta (0) Stampa
Espandi tutto
0 di 1 hanno valutato il contenuto utile: - Valuta questo argomento

Classe OdbcCommandBuilder

Genera automaticamente comandi di tabella singola utilizzati per risolvere le modifiche apportate a una classe DataSet con l'origine dati associata. Questa classe non può essere ereditata.

Spazio dei nomi: System.Data.Odbc
Assembly: System.Data (in system.data.dll)

public sealed class OdbcCommandBuilder : DbCommandBuilder
public final class OdbcCommandBuilder extends DbCommandBuilder
public final class OdbcCommandBuilder extends DbCommandBuilder

L'oggetto OdbcDataAdapter non genera automaticamente le istruzioni SQL richieste per risolvere le modifiche apportate a un oggetto DataSet associato con l'origine dati. È tuttavia possibile creare un oggetto OdbcCommandBuilder per generare istruzioni SQL per aggiornamenti di tabelle singole, impostando la proprietà SelectCommand della classe OdbcDataAdapter. Qualsiasi ulteriore istruzione SQL aggiuntiva non impostata viene quindi generata dall'oggetto OdbcCommandBuilder.

La relazione tra un oggetto OdbcDataAdapter e il relativo oggetto OdbcCommandBuilder corrispondente è sempre uno a uno. Per creare questa corrispondenza, impostare la proprietà OdbcDataAdapter dell'oggetto OdbcCommandBuilder. Questa operazione provoca la registrazione della classe OdbcCommandBuilder come listener, con la conseguente produzione dell'output di eventi RowUpdating che hanno effetto sulla classe DataSet.

Per generare istruzioni INSERT, UPDATE o DELETE, la proprietà SelectCommand viene utilizzata dalla classe OdbcCommandBuilder per recuperare un set necessario di metadati. Se si modifica il valore della proprietà SelectCommand dopo il recupero dei metadati, ad esempio dopo il primo aggiornamento, è necessario chiamare il metodo RefreshSchema per aggiornare i metadati.

NotaNota

Se l'istruzione SELECT assegnata alla proprietà SelectCommand utilizza nomi di colonna con alias, è possibile che le istruzioni INSERT, UPDATE e DELETE risultanti non siano precise o abbiano esito negativo. Se il driver ODBC sottostante non è in grado di fornire il nome di colonna base appropriato per il nome di colonna alias, utilizzando il valore SQL_DESC_BASE_COLUMN_NAME di SQLColAttribute, è possibile utilizzare il nome alias nelle istruzioni INSERT, UPDATE e DELETE generate. Il driver Microsoft ODBC per Oracle restituisce il nome alias come nome di colonna base. Le istruzioni INSERT, UPDATE e DELETE generate, pertanto, provocherebbero un errore.

L'oggetto OdbcCommandBuilder utilizza inoltre le proprietà Connection, CommandTimeout e Transaction a cui viene fatto riferimento dalla proprietà SelectCommand. È necessario chiamare il metodo RefreshSchema se una o più di queste proprietà viene modificata o se il valore della proprietà SelectCommand stessa viene modificato. In caso contrario, le proprietà InsertCommand, UpdateCommand e DeleteCommand conservano i valori precedenti.

Se si chiama il metodo Dispose, OdbcCommandBuilder verrà dissociato dall'oggetto OdbcDataAdapter e i comandi generati non saranno più utilizzati.

Nell'esempio riportato di seguito vengono utilizzate le classi OdbcCommand, OdbcDataAdapter e OdbcConnection per selezionare le righe da un'origine dati. Viene passato un oggetto DataSet inizializzato, una stringa di connessione, una stringa di query che rappresenta un'istruzione SQL SELECT e una stringa che rappresenta il nome della tabella dell'origine dati. In seguito, viene creata una classe OdbcCommandBuilder.

public static DataSet SelectOdbcSrvRows(string connectionString,
    string queryString, string tableName)
{
    DataSet dataSet = new DataSet();
    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcDataAdapter adapter = new OdbcDataAdapter();
        adapter.SelectCommand =
            new OdbcCommand(queryString, connection);
        OdbcCommandBuilder builder =
            new OdbcCommandBuilder(adapter);

        connection.Open();

        adapter.Fill(dataSet, tableName);

        //code to modify data in DataSet here

        //Without the OdbcCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);
    }
    return dataSet;
}

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.