解决方案范围内的连接字符串和数据集,用于设计时和运行时

时间:2015-10-07 13:04:45

标签: c# .net oracle app-config strongly-typed-dataset

我正在使用 Visual Studio 2013 开发 Windows窗体应用程序,需要访问多个Oracle数据库。

主应用程序是一个MDI窗口,您可以从菜单中打开许多不同的子窗体。每个子表单都可以访问不同的Oracle数据库,并显示不同的DataGridView和其他数据控件。

我使用的是Oracle Developer Tools,子窗体包含从VS Toolbox中获取的Oracle控件,使用拖放和向导,因此DataBinding会自动配置。

该解决方案包含3个项目:主应用程序EXE(包含表单,DataSet.xsd和.config文件),数据访问类DLL,报告DLL(包含RDLC报告作为嵌入文件)。

对于每个数据库,我需要引用相同的ConnectionString,包括设计时(由向导使用)和运行时。在设计时,表单控件自动使用对DataSet.xsd文件的引用,因此ConnectionString第一次使用向导自动创建。然后我还需要在运行时访问同一个数据库,因此当我部署应用程序时,我需要保留所有正确的引用,包括调试和发布。

现在我将所有ConnectionStrings和DataSets XSD文件存储在Main App EXE项目中,我的实际配置文件是:

DataSet.xsd and .config files

当我使用报表向导工具在Reports DLL项目上添加新报表时,我要求创建一个新的DataSet以及一个新的ConnectionString,因为 Visual Studio并没有告诉我存储在Main App EXE项目中的现有连接

总结一下,我需要能够:

    主应用程序EXE项目和报告DLL项目之间
  • 共享ConnectionStrings ;
  • 主应用程序EXE项目和报告DLL项目之间
  • 共享DataSet XSD文件;
  • 拥有不同的ConnectionStrings for Debug / Release 并在项目之间共享;
  • 每当我更改基础数据库时,
  • 自动更新DataSet XSD文件;
  • 更改数据库上下文(用于发布的调试和生产环境的测试环境),而不会破坏DataSet.xsd,或者,如果不可能,则通过具有两个不同的DataSet XSD文件,一个用于测试,另一个用于测试一个用于生产,基于调试/发布模式自动选择

现在我需要手动更改XSD文件中的代码以替换ConnectionString(测试/生产)。但是由于DataSet引用了相同的数据库结构,我需要一种机制来使这更容易。

0 个答案:

没有答案