Question: Hi I am currently using TableAdapter that returns a dataTable, which is fine to use when result table should have more than one row like :

```
MyItemsDataTable myItemsDataTable = Adapter.GetAllItems();  

```

but if we need only one row as a result, say an item, which has a particular ID

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

```

how can I make Adapter to return one row instead of DataTable.
I am using DataSet Designer wizard and gives me two options for putting in SELECT statement

```
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) 

```

and using similar query

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

```

Do I need to override this method or add a new one ?

```
public virtual MyItemsDataSet.MyItemsDataTable  GetItemByID(int ITEM_ID)

```

probably something like 

```
public virtual MyItemsDataSet.MyItemRow GetItemByID(int ITEM_ID)

```

If so, I cannot do it in designer generated file !! where can I do this ?

Thanks

Answer: 
Hard to tell without knowing what the code for the original throw is doing. It is possible that there are outstanding forms events that get processed as part of the app shutdown that ends up re-invoking the original code fragment. It could also be a virtual function on your application class that gets invoked during shutdown.

You should be able to just print the stack trace from your catch handler to figure it out though.
I suspect that in `ExceptionHandler.OnUnhandledException` a new exception might be raised which remains unhandled, gets bubbled up to the unhandled exceptions handler, which raises your `ExceptionHandler.OnUnhandledException` method and so on.. (infinite loop -> stack overflow).

So doublecheck your OnUnhandledException method for thrown errors.

Edit: funny, I try to reproduce your error, but instead of throwing an error again and again, my app. simply exits after the unhandled exception handler method, no matter what happens in there. Were you debugging or running? It might cause a difference.