Creare query TableAdapter con parametri nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Le tecnologie sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

Una query con parametri restituisce dati che soddisfano le condizioni di una WHERE clausola all'interno della query. Ad esempio, è possibile aggiungere un parametro a un elenco di clienti in modo da visualizzare solo i clienti di una determinata città aggiungendo WHERE City = @City alla fine dell'istruzione SQL che restituisce un elenco di clienti.

Le query TableAdapter con parametri vengono create in Progettazione set di dati. È anche possibile crearli in un'applicazione Windows con il comando Parametrizza origine dati dal menu Dati . Il comando Parametrizza origine dati crea controlli nel modulo in cui è possibile immettere i valori dei parametri ed eseguire la query.

Nota

Quando si crea una query con parametri, usare la notazione del parametro specifica per il database in cui si sta codificando. Ad esempio, le origini dati Access e OleDb usano il punto interrogativo '?' per indicare i parametri, quindi la WHERE clausola sarà simile alla seguente: WHERE City = ?.

Creare una query TableAdapter con parametri

Per creare una query con parametri in Progettazione DataSet

  • Creare un nuovo TableAdapter, aggiungendo una WHERE clausola con i parametri desiderati all'istruzione SQL. Per altre informazioni, vedere Creare e configurare TableAdapters.

    or

  • Aggiungere una query a un TableAdapter esistente, aggiungendo una WHERE clausola con i parametri desiderati all'istruzione SQL.

Per creare una query con parametri durante la progettazione di un form associato a dati

  1. Selezionare un controllo nel form che sia già associato a un dataset. Per altre informazioni, vedere Associare controlli Windows Form ai dati in Visual Studio.

  2. Scegliere Aggiungi query dal menu Dati.

  3. Completare la finestra di dialogo Generatore criteri di ricerca, aggiungendo una WHERE clausola con i parametri desiderati all'istruzione SQL.

Per aggiungere una query a un form associato a dati esistente

  1. Aprire il modulo in Progettazione Windows Form.

  2. Nel menu Dati selezionare Aggiungi query o Smart Tag dati.

    Nota

    Se l'opzione Aggiungi query non è disponibile nel menu Dati, selezionare nel form il controllo che consente di visualizzare l'origine dati a cui si vuole aggiungere la parametrizzazione. Ad esempio, se nel form i dati sono visualizzati in un controllo DataGridView, selezionarlo. Se i dati del form sono visualizzati in controlli singoli, selezionare qualsiasi controllo associato a dati.

  3. Nell'area Seleziona tabella origine dati selezionare la tabella a cui si desidera aggiungere la parametrizzazione.

  4. Digitare un nome nella casella Nuovo nome query se si intende creare una nuova query.

    or

    Selezionare una query nella casella Nome query esistente.

  5. Nella casella Testo query digitare una query che accetta parametri.

  6. Seleziona OK.

    Un controllo per l'immissione del parametro e un pulsante Carica verranno aggiunti al form in un controllo ToolStrip.

Eseguire una query per i valori Null

I parametri TableAdapter possono essere assegnati valori Null quando si desidera eseguire una query per i record senza valore corrente. Si consideri, ad esempio, la query seguente con un ShippedDate parametro nella relativa WHERE clausola:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Se si tratta di una query su un TableAdapter, è possibile eseguire una query per tutti gli ordini che non sono stati spediti con il codice seguente:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Per abilitare una query per accettare valori Null:

  1. In Progettazione set di dati selezionare la query TableAdapter che deve accettare valori di parametro Null.

  2. Nella finestra Proprietà selezionare Parametri e quindi selezionare il pulsante con i puntini di sospensione (...) per aprire l'Editor raccolta parametri.

  3. Selezionare il parametro che consente valori Null e impostare la proprietà AllowDbNull su true.