Npgsql连接字符串,动态数据库查询

时间:2016-10-26 10:09:43

标签: c# postgresql npgsql

我有以下连接字符串:

NpgsqlConnection conn = new NpgsqlConnection($"Server={_server};Port={_port};User ID={_userid};Password={_password};Database={database}");

从国家/地区代码(GB,US,DE等)的集合中选择database,并查询相应的数据库。

国家/地区代码是从一系列方法中选择的,这些方法可以确定latitudelongitude(UTM)在地图上的位置(即51.503471, -0.119586将输出:GB,因为它位于边界内英国的盒子)。 lat/lon值由用户传入,因此每个查询可能不同,并且可能在不同的国家/地区(因此也是不同的数据库)。

其余的连接数据保持不变,服务器/用户ID等不会改变,但每次用户提交lat/lon时,被查询的数据库都可能会改变。

有没有办法在database中没有指定Postgres/Npgsql的情况下保持连接打开,或者每次查询时都必须重新打开(并在查询结束时关闭)连接提交?

1 个答案:

答案 0 :(得分:1)

不,PostgreSQL连接始终是与特定数据库的连接 - 您无法切换保留相同连接的数据库。

是否有特殊原因将数据分成不同的数据库?同一数据库中的单独模式可以用于相同的目的,而不必强制您重新连接等。如果必须使用不同的数据库,连接池可以减轻不断关闭/打开连接对性能的影响。