【发布时间】:2020-05-07 01:33:51
【问题描述】:
在单个 ASP.NET Web 应用程序中访问 SQL Server 和 PostgreSQL 数据库中的数据的最佳方法是什么?我有一个gridview,我想拥有来自两个数据库的数据列。有什么建议吗?
我尝试在 SQL 服务器上创建一个 ODBC 驱动程序,并将服务器链接到 PostgreSQL,然后创建一个从两个数据库中选择的视图。我遇到了许多我不知道如何解决的转换错误以及性能问题。
【问题讨论】:
-
“最佳”只能由您定义。我猜你有 2 个选项,链接服务器,正如你所尝试的,并从你的应用程序中的 2 个数据库中提取数据。您需要确定哪个适合您的情况,然后询问您遇到的任何问题,例如,如果您决定采用链接服务器方式,您可能会询问有关如何解决转换错误的问题。
-
我有点放弃了链接服务器,想知道是否还有其他想法。我真的认为这对我的情况来说是最好的主意。尝试从链接服务器中进行选择时遇到的错误是链接服务器“linkedServer”的 OLE DB 提供程序“MSDASQL”为列提供了不一致的元数据。据报道,对象“Database”.“schema”.“tablename”的列“Column”(编译时序号 2)在编译时的“DBCOLUMNFLAGS_ISLONG”为 128,在运行时为 0。
-
您需要提出一个新的、完整的问题。
-
是的,正如@Dale K 所解释的,您应该选择最佳选项。每种方法都有其优点和缺点。例如,您已经尝试过的方法有其自身的问题,例如数据类型不匹配、速度慢等。我想如果您使用该方法从您的应用程序访问两个数据库并将数据加载到您自己的对象中,您可以避免类型不匹配的问题在合并它们之前。
-
我认为我遇到的主要问题是 postgres 中的 citext 列。当我尝试在 SQL 中选择时,我得到了那个错误。
标签: c# asp.net sql-server postgresql linked-server