ホームページ > データベース > mysql チュートリアル > DataReader を使用して DataSet に複数のテーブルを効率的に入力するにはどうすればよいですか?

DataReader を使用して DataSet に複数のテーブルを効率的に入力するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-29 18:37:17
オリジナル
949 人が閲覧しました

How to Efficiently Fill a DataSet with Multiple Tables Using a DataReader?

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;
        }
    }
}
ログイン後にコピー

このアプローチでは、

  1. テーブルごとに 1 つずつ、合計 2 つの SELECT ステートメントを含むクエリを定義します。
  2. クエリを実行するためのパラメーターを含む SqlCommand。
  3. ExecuteReader コマンドを実行し、reader.NextResult() を使用して 2 番目のテーブルにデータを読み込みます。
  4. テーブルを表す 2 つの DataTable オブジェクトを作成し、
  5. DataTable オブジェクトを DataSet に追加し、接続。

以上がDataReader を使用して DataSet に複数のテーブルを効率的に入力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート