DataReader を使用して DataSet に複数のテーブルを入力する
1 対多の関係を持つ複数のテーブルを含む DataSet を操作する場合、 DataReader を使用して入力することができます。ただし、単一の DataReader を使用するデフォルトのアプローチでは、すべてのテーブルからデータをキャプチャできない可能性があります。
この制限を克服するには、次のアプローチを使用できます。
using System.Data; using System.Data.SqlClient; using System.IO; namespace SampleApp { public class DataSetWithTables { private SqlConnection connection; public DataSet SelectOne(int id) { DataSet result = new DataSet(); string query = @"select * from table1; select * from table2 where table1_id = @ID;"; using (connection = new SqlConnection("ConnectionString")) { connection.Open(); using (SqlCommand command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("ID", id); using (SqlDataReader reader = command.ExecuteReader()) { DataTable table1 = new DataTable("Table1"); DataTable table2 = new DataTable("Table2"); table1.Load(reader); if (reader.NextResult()) { table2.Load(reader); } result.Tables.Add(table1); result.Tables.Add(table2); } } connection.Close(); } return result; } } }
このアプローチでは、
以上がDataReader を使用して DataSet に複数のテーブルを効率的に入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。