Home >Database >Mysql Tutorial >How to Fill a DataSet with Multiple Tables Using a DataReader?
Filling a DataSet with Multiple Tables Using DataReader
When working with a DataSet containing multiple tables with relationships, it's necessary to fill all tables to maintain data integrity. While using DataReader can be beneficial for performance, it requires a slightly different approach compared to DataAdapter.
DataReader doesn't provide a direct mechanism to fill multiple tables in a single request. However, it's possible to achieve this by executing multiple SELECT statements in a single query. The challenge lies in assigning meaningful table names to the tables generated from these queries.
To overcome this, you can use the TableMappings property of SqlDataAdapter, as illustrated below:
SqlDataAdapter adapter = new SqlDataAdapter( "SELECT * FROM Customers; SELECT * FROM Orders", connection); adapter.TableMappings.Add("Table", "Customer"); adapter.TableMappings.Add("Table1", "Order"); adapter.Fill(ds);
This code executes both SELECT statements in a single request and maps the resulting tables to the desired names ("Customer" and "Order") within the DataSet. By specifying the table names, you ensure that the DataSet is populated correctly with the correct relationships between tables.
The above is the detailed content of How to Fill a DataSet with Multiple Tables Using a DataReader?. For more information, please follow other related articles on the PHP Chinese website!