我正在使用 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项目中,我的实际配置文件是:
当我使用报表向导工具在Reports DLL项目上添加新报表时,我要求创建一个新的DataSet以及一个新的ConnectionString,因为 Visual Studio并没有告诉我存储在Main App EXE项目中的现有连接。
总结一下,我需要能够:
现在我需要手动更改XSD文件中的代码以替换ConnectionString(测试/生产)。但是由于DataSet引用了相同的数据库结构,我需要一种机制来使这更容易。