We recommend using Visual Studio 2017

Database.ExecuteWithResults Method (String)

Executes a collection of batches in the context of the database where there are results returned.

Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)

public DataSet ExecuteWithResults(
	string sqlCommand


Type: System.String
A String value that contains a Transact-SQL command.

Return Value

Type: System.Data.DataSet
A DataSet system object value that contains the returned results set.

The results from this method are returned as a DataSet object. The DataSet object contains a collection of DataTable objects, from which the column and row information can be extracted.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server

'Reference the AdventureWorks database.
Dim db As Database
db = srv.Databases("AdventureWorks")

'Run a Transact-SQL command on the database.

'Run a Transact-SQL command with results and display.
Dim ds As DataSet
ds = db.ExecuteWithResults( _
"SELECT * FROM Person.Address")
Dim t As DataTable
Dim r As DataRow
Dim c As DataColumn
For Each t In ds.Tables
   For Each r In t.Rows
      For Each c In r.Table.Columns
          Console.WriteLine( _
          c.ColumnName + " = " + r(c).ToString)