sql >> データベース >  >> RDS >> Sqlserver

SqlCommandを使用して複数の結果セットを返すにはどうすればよいですか?

    SqlDataReader.NextResultを参照してください(SqlDataReaderはSqlCommand.ExecuteReaderの呼び出しから返されます):

    バッチTransact-SQLステートメントの結果を読み取るときに、データリーダーを次の結果[セット]に進めます。

    例:

    string commandText = @"SELECT Id, ContactId
    FROM dbo.Subscriptions;
    
    SELECT Id, [Name]
    FROM dbo.Contacts;";
    
    
    List<Subscription> subscriptions = new List<Subscription>();
    List<Contact> contacts = new List<Contact>();
    
    using (SqlConnection dbConnection = new SqlConnection(@"Data Source=server;Database=database;Integrated Security=true;"))
    {
        dbConnection.Open();
        using (SqlCommand dbCommand = dbConnection.CreateCommand())
        {
            dbCommand.CommandText = commandText;
            using(SqlDataReader reader = dbCommand.ExecuteReader())
            {
                while(reader.Read())
                {
                    subscriptions.Add(new Subscription()
                    {
                        Id = (int)reader["Id"],
                        ContactId = (int)reader["ContactId"]
                    });
                }
    
                // this advances to the next resultset 
                reader.NextResult();
    
                while(reader.Read())
                {
                    contacts.Add(new Contact()
                    {
                        Id = (int)reader["Id"],
                        Name = (string)reader["Name"]
                    });
                }
            }
        }
    }
    

    その他の例:

    • C#複数の結果セット
    • SqlDataReaderを使用して複数の結果セットを返すクエリを実行する:SqlCommand Select«ADO.Net«C#/ CSharp Tutorial


    1. MySQLでのFORMAT()の例

    2. MySQLでNULL値のないレコードを選択する方法

    3. クエリという名前のJPAのIN句で動的パラメータを使用するにはどうすればよいですか?

    4. 低い権限を持つPL-SQLを使用してOracleで列データ型を取得するにはどうすればよいですか?