在C#中實現異步數據庫操作可以使用Npgsql
庫來連接PostgreSQL數據庫,同時使用async
和await
關鍵字來實現異步操作。以下是一個簡單的示例代碼:
using System;
using System.Threading.Tasks;
using Npgsql;
class Program
{
static async Task Main(string[] args)
{
var connectionString = "Host=myserver;Port=5432;Username=myusername;Password=mypassword;Database=mydatabase";
await using var conn = new NpgsqlConnection(connectionString);
await conn.OpenAsync();
var cmd = new NpgsqlCommand("SELECT * FROM mytable", conn);
await using var reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
Console.WriteLine(reader.GetString(0));
}
}
}
在這個示例中,我們首先建立了一個NpgsqlConnection
對象,并使用OpenAsync
方法打開連接。然后創建一個NpgsqlCommand
對象并執行查詢語句,最后使用ExecuteReaderAsync
方法獲取查詢結果。在循環中使用ReadAsync
方法逐行讀取結果并輸出到控制臺。
通過使用async
和await
關鍵字,我們可以在異步的方式下進行數據庫操作,并且不會阻塞主線程。