在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
关键字,我们可以在异步的方式下进行数据库操作,并且不会阻塞主线程。