我有以下连接字符串:
NpgsqlConnection conn = new NpgsqlConnection($"Server={_server};Port={_port};User ID={_userid};Password={_password};Database={database}");
从国家/地区代码(GB,US,DE等)的集合中选择database
,并查询相应的数据库。
国家/地区代码是从一系列方法中选择的,这些方法可以确定latitude
和longitude
(UTM)在地图上的位置(即51.503471, -0.119586
将输出:GB,因为它位于边界内英国的盒子)。 lat/lon
值由用户传入,因此每个查询可能不同,并且可能在不同的国家/地区(因此也是不同的数据库)。
其余的连接数据保持不变,服务器/用户ID等不会改变,但每次用户提交lat/lon
时,被查询的数据库都可能会改变。
有没有办法在database
中没有指定Postgres/Npgsql
的情况下保持连接打开,或者每次查询时都必须重新打开(并在查询结束时关闭)连接提交?
答案 0 :(得分:1)
不,PostgreSQL连接始终是与特定数据库的连接 - 您无法切换保留相同连接的数据库。
是否有特殊原因将数据分成不同的数据库?同一数据库中的单独模式可以用于相同的目的,而不必强制您重新连接等。如果必须使用不同的数据库,连接池可以减轻不断关闭/打开连接对性能的影响。