I have the following code.

```
private DataTable LoadSMSCellProviders()
{
    string sqlQuery = "Select * from SMSAddress";
    DataTable dt = new DataTable();
    using (SqlConnection conn = new SqlConnection(Utility.ConnString))
    {
        using (SqlCommand command = new SqlCommand(sqlQuery, conn))
        {
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            adapter.Fill(dt);
            return dt;
        }
    }
}

```

The Microsoft Code Analysis is telling me that `dt` is not disposed along all execution paths, but I am not sure how to correct this. If I try to call `dispose` on it before the `return`, it will return a null value, and if I try to do it at the end of the method, the code is never reached...

What am I missing here?

This is the message from the analysis tool:

> 
> warning : CA2000 : Microsoft.Reliability : In method 'x.x()', object
>  'dt' is not disposed along all exception paths. Call
>  System.IDisposable.Dispose on object 'dt' before all references to it
>  are out of scope.
> 
> 
>