Domanda

Ciao Attualmente sto usando TableAdapter che restituisce un DataTable, che va bene da usare quando tabella dei risultati dovrebbe avere più di una riga come:

MyItemsDataTable myItemsDataTable = Adapter.GetAllItems();  

, ma se abbiamo bisogno di una sola fila di conseguenza, dire che un elemento, che ha una particolare ID

MyItemsDataSet.MyItemRow  itemRow = Adapter.GetItemByID(id)[0];  

come posso fare Adattatore per tornare una riga invece di DataTable. Sto usando wizard DataSet Designer e mi dà due opzioni per la messa in SELECT

Use SQL statements -->  Select which return rows
(returns one or many rows)
Use SQL statements -->  Select which returns a single value rows
(returns a single value) 

e l'utilizzo di query simile

SELECT * from
FROM  FOOD_ITEMS
WHERE (ITEM_ID = @ITEM_ID)

Devo ignorare questo metodo o aggiungerne uno nuovo?

public virtual MyItemsDataSet.MyItemsDataTable  GetItemByID(int ITEM_ID)

probabilmente qualcosa come

public virtual MyItemsDataSet.MyItemRow GetItemByID(int ITEM_ID)

Se è così, non posso farlo in file di progettazione generato !! dove posso fare questo?

Grazie

È stato utile?

Soluzione

Crea una nuova istruzione Select in Progettazione DataSet. Utilizzare Select which return rows. Quindi utilizzare la seguente query:

SELECT TOP 1 * from 
FROM  FOOD_ITEMS 
WHERE (ITEM_ID = @ITEM_ID)

Salva questo metodo come GetFirstItemByID() o qualcosa di simile.


Per i Googler là fuori, molti dei database non-MS (ad esempio MySQL.) Utilizzerà la seguente sintassi invece:

SELECT * from 
FROM  FOOD_ITEMS 
WHERE (ITEM_ID = @ITEM_ID)
LIMIT 1

Altri suggerimenti

Credo che l'unico modo è quello di accedere alla prima riga della tabella di dati tramite un indice, come si sta facendo con questa query -

MyItemsDataSet.MyItemRow  itemRow = Adapter.GetItemByID(id)[0];  

Un'altra cosa che si dovrebbe prendere in considerazione di dumping adattatori da tavolo e utilizzando LINQ2SQL invece. LINQ supporta il metodo .first (), che fa esattamente quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top