2009年7月28日火曜日

[.NET]ADO.NETで複数の実行結果を取得する

ADO.NETでは、一回のクエリーにて、複数のSQLを送り込むことができます。
たとえば、「Select * form TBL1;Select * form TBL2」というSQLを実行すると同時に2のクエリーを実行してくれます。これはSELECTだけではなく他のUPDATEやDELETEも実行できます。SQLServerでいえば、T-SQLの実行相当を行うことができます。

複数のSQLを実行した場合、複数の結果を取得するためにどのようにすればよいかというと、SqlDataReader.NextResultを使います。
詳しい説明は、DataReader によるデータの取得が参考になると思います。

で、コードはこんな感じ。

private void button1_Click(object senderRoutedEventArgs e

    using (SqlConnection con = new SqlConnection("接続文字列")) 
    using (SqlCommand cmd = new SqlCommand("適当なT-SQL"con)) 
    { 
        con.Open(); 
        using (SqlDataReader dr = cmd.ExecuteReader())
        {
            do
            {
                //実行したSQLに対する処理
            } while (dr.NextResult());
        }
    } 

0 件のコメント :