Yes, you can.
SqlConnection connection = new SqlConnection("Data Source=localhost; Initial Catalog=myDatabase; Trusted_Connection=true;User Id=;Password=");
connection.Open();
string sqlUsers = @"select * from Users";
string sqlRoles = @"select * from Roles";
SqlDataAdapter daUsers = new SqlDataAdapter(sqlUsers, connection);
SqlDataAdapter daRoles = new SqlDataAdapter(sqlRoles, connection);
DataSet dsUsersAndRoles = new DataSet("UserAndRoles");
daUsers.Fill(dsUsersAndRoles, "users");
daRoles.Fill(dsUsersAndRoles, "roles");
var userTable = dsUsersAndRoles.Tables["users"];
You can specify a name when you're filling the dataset.
NOTE: this code is c# but I guess it should be easy to convert.
This is the converter, just in case.
UPDATE:
You can use TableMappings
collection of the SqlDataAdapter
to map each table in the query expression:
SqlConnection connection = new SqlConnection("Data Source=localhost; Initial Catalog=myDatabase; Trusted_Connection=true;User Id=;Password=");
connection.Open();
string sqlUsersRoles = @"select * from UserLogins;select * from Users;select * from Roles";
SqlDataAdapter daUsersRoles = new SqlDataAdapter(sqlUsersRoles, connection);
daUsersRoles.TableMappings.Add("Table", "UserLogins");
daUsersRoles.TableMappings.Add("Table1", "Users");
daUsersRoles.TableMappings.Add("Table2", "Roles");
DataSet dsUsersAndRoles = new DataSet("UserAndRoles");
daUsersRoles.Fill(dsUsersAndRoles);
DataTableCollection tables = dsUsersAndRoles.Tables;
DataTable users = tables["Users"];
As you can see my Sql Statement contains 3 query on 3 tables.
Tables are named Table
, Table1
, Table2
and so on.
You can just rename them adding elements to the collection:
daUsersRoles.TableMappings.Add("Table", "UserLogins");
daUsersRoles.TableMappings.Add("Table1", "Users");
daUsersRoles.TableMappings.Add("Table2", "Roles");