在C#winforms中切换数据库

时间:2012-03-01 10:45:00

标签: c# sql database

我创建了一个基于数据库数据生成报告的应用程序。

我的应用程序的功能是正确的,但我有一个以下问题:我的客户端有两个相同的数据库 - 一个用于测试,一个用于他的实际工作。

我的应用程序应该适用于两个数据库(它应该有一个“切换机制”),但我不知道如何实现它。

我知道我可以在连接字符串之间切换,但问题是在我的报告中我使用绑定到一个数据库的数据集。

是否可以使用来自两个数据库的数据填充这些数据集(因为数据库在模式中是相同的,应该是可能的),以及如何完成,或者我是否必须使用重复的数据集/报告对?

我在VS 2010中使用C#和SQL Server 2005,而.rdlc用于我的报告。 感谢。

2 个答案:

答案 0 :(得分:2)

理想情况下,你应该能够在一个地方更改连接字符串,它应该影响项目范围。

只有从一个地方获得连接字符串时,这才会起作用。将其保存在app.config文件中。

请参阅this article,了解如何在app.config文件中存储和读取连接字符串。

答案 1 :(得分:0)

您已经了解了人们实施存储库模式或至少是其版本的原因。

您确实需要从数据库中删除业务逻辑,以便与数据库无关。它不应该关心数据来自何处。

根据您所说的暗示,您的客户端不仅仅需要更改用于数据库访问的app.config连接字符串。

如果是这样的话,我知道这将需要一些工作,你最好的办法是拥有一个单例模式类型来控制进出数据层的所有数据。

使用已知的接口,您可以使用工厂模式在运行时创建对开发或实时数据库的访问(可能基于app.config设置,甚至根本没有数据库访问的测试类,但只是返回硬盘编码测试数据。