Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
SQLite biedt geen systeemeigen ondersteuning voor batchverwerking van SQL-instructies in één opdracht. Maar omdat er geen netwerk betrokken is, zou het de prestaties toch niet echt helpen. Microsoft.Data.Sqlite implementeert echter instructiebatches als een gemak om het gedrag meer te laten lijken op andere ADO.NET providers.
Bij het aanroepen DbCommand.ExecuteReaderworden instructies uitgevoerd tot aan de eerste die resultaten retourneert. Het aanroepen van DbDataReader.NextResult blijft instructies uitvoeren totdat de volgende instructie resultaten retourneert of totdat het einde van de batch is bereikt. Roepen van DbDataReader.Dispose of Close voert eventuele resterende instructies uit die niet door NextResult()
zijn verbruikt. Als u geen gegevenslezer verwijdert, probeert de finalizer de resterende instructies uit te voeren, maar eventuele fouten die optreden, worden genegeerd. Daarom is het belangrijk om objecten te verwijderen DbDataReader
bij het gebruik van batches.
// Batch two SELECT statements into a single command
var command = connection.CreateCommand();
command.CommandText =
@"
SELECT *
FROM blog;
SELECT *
FROM post;
";
using (var reader = command.ExecuteReader())
{
// Read the first result set
while (reader.Read())
{
Console.WriteLine($"Blog {reader["id"]}: {reader["name"]}");
}
// Read the second result set
reader.NextResult();
while (reader.Read())
{
Console.WriteLine($"Post {reader["id"]}: {reader["title"]}");
}
}