public void MultipleCommandsWithParameters([Values(PrepareOrNot.NotPrepared, PrepareOrNot.Prepared)] PrepareOrNot prepare)
{
using (var conn = OpenConnection())
{
using (var cmd = new NpgsqlCommand("SELECT @p1; SELECT @p2", conn))
{
var p1 = new NpgsqlParameter("p1", NpgsqlDbType.Integer);
var p2 = new NpgsqlParameter("p2", NpgsqlDbType.Text);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
if (prepare == PrepareOrNot.Prepared)
cmd.Prepare();
p1.Value = 8;
p2.Value = "foo";
using (var reader = cmd.ExecuteReader())
{
Assert.That(reader.Read(), Is.True);
Assert.That(reader.GetInt32(0), Is.EqualTo(8));
Assert.That(reader.NextResult(), Is.True);
Assert.That(reader.Read(), Is.True);
Assert.That(reader.GetString(0), Is.EqualTo("foo"));
Assert.That(reader.NextResult(), Is.False);
}
}
}
}