Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在寻找一个可以同时访问多个数据库的好实现_C#_.net_Search_Multiple Databases - Fatal编程技术网

C# 正在寻找一个可以同时访问多个数据库的好实现

C# 正在寻找一个可以同时访问多个数据库的好实现,c#,.net,search,multiple-databases,C#,.net,Search,Multiple Databases,我只是想知道在C/ASP.NET中是否有一个很好的实现,如何同时从不同的数据库访问我的记录。我有一个简单的应用程序,它假设在这些数据库上搜索,然后,如果某个关键字匹配,则显示记录 我有5个数据库目前正在使用MySQL all-in-all,并将在将来扩展它,可能会改为SQL Server。我完全了解如何在单个数据库上搜索,而我仍在学习如何在多个数据库中搜索 任何提示,评论或建议?有多个XXXConnection MysqlConnection或其他任何实例并对其进行迭代。有多个XXXConnec

我只是想知道在C/ASP.NET中是否有一个很好的实现,如何同时从不同的数据库访问我的记录。我有一个简单的应用程序,它假设在这些数据库上搜索,然后,如果某个关键字匹配,则显示记录

我有5个数据库目前正在使用MySQL all-in-all,并将在将来扩展它,可能会改为SQL Server。我完全了解如何在单个数据库上搜索,而我仍在学习如何在多个数据库中搜索


任何提示,评论或建议?

有多个XXXConnection MysqlConnection或其他任何实例并对其进行迭代。

有多个XXXConnection MysqlConnection或其他任何实例并对其进行迭代。

您可以使用相同的方法,使用不同的连接字符串。对于.NET4.0或不久前推出的库的3.5版本中的并行扩展,这将是一个很好的候选。如果结果集有点相同,我还将研究该方法的使用。

您将使用相同的方法,使用不同的连接字符串针对每个其他数据库搜索单个数据库。对于.NET4.0或不久前推出的库的3.5版本中的并行扩展,这将是一个很好的候选。如果结果集有点相同,我还将研究该方法的使用。

我不能说是MySQL,但在SQL server中,只要您连接的用户具有正确的权限,您就可以从多个数据库中进行选择。如果所有数据库中的表都相似,那么您可以通过将结果合并在一起,在一个查询中实现这一点。因此,如果您有3个名为DB1、DB2和DB3的数据库,每个数据库都有一个名为Records的表,那么您可以这样做:

SELECT * FROM DB1.dbo.Records WHERE Name Like '%searchterm%'
UNION
SELECT * FROM DB2.dbo.Records WHERE Name Like '%searchterm%'
UNION
SELECT * FROM DB3.dbo.Records WHERE Name Like '%searchterm%'

我不能说是MySQL,但在SQL server中,只要连接到的用户具有正确的权限,就可以从多个数据库中进行选择。如果所有数据库中的表都相似,那么您可以通过将结果合并在一起,在一个查询中实现这一点。因此,如果您有3个名为DB1、DB2和DB3的数据库,每个数据库都有一个名为Records的表,那么您可以这样做:

SELECT * FROM DB1.dbo.Records WHERE Name Like '%searchterm%'
UNION
SELECT * FROM DB2.dbo.Records WHERE Name Like '%searchterm%'
UNION
SELECT * FROM DB3.dbo.Records WHERE Name Like '%searchterm%'

根据您是在应用程序的服务器端还是客户端执行查询,您可以在服务器端执行以下操作:

[Server].[Database].[Schema].[Table]
在SQL Server中,表名的前缀可以是服务器名、数据库名和架构名。如果不希望使用架构名称,但需要指定位于同一服务器上的数据库,则可以编写以下代码:

[Database]..[Table]
如果您更希望从客户端进行搜索,您可能希望使用可配置的命名连接字符串及其提供的抽象


如果您希望在性能上有所提高,您可以简单地使用。然后,在客户端执行查询。

根据您是在应用程序的服务器端还是客户端执行查询,您可以在服务器端执行以下操作:

[Server].[Database].[Schema].[Table]
在SQL Server中,表名的前缀可以是服务器名、数据库名和架构名。如果不希望使用架构名称,但需要指定位于同一服务器上的数据库,则可以编写以下代码:

[Database]..[Table]
如果您更希望从客户端进行搜索,您可能希望使用可配置的命名连接字符串及其提供的抽象


如果您希望在性能上有所提高,您可以简单地使用。再次,这是在客户端。

选项1:MySQL中的链接服务器。我不建议这样做。但我肯定会尝试使用Microsoft Data Application Block并使用MSDTC进行多个连接,然后将结果合并到我的C代码中。选项1:MySQL中的链接服务器。我不建议这样做。但我肯定会尝试Microsoft Data Application Block并使用MSDTC进行多个连接,然后将结果合并到我的C代码中。除非使用链接服务器,否则数据库也必须位于同一服务器上。除非使用链接服务器,否则数据库也必须位于同一服务器上。