所以这是我们的情况:我们有一些软件需要进行一些数据库配置。可能是SQL,可能是Oracle等。如果是Oracle,我们会进行测试连接,如果我们得到12154(TNS:无法解析),我们会提示用户提供tnsnames.ora的新副本,我们将其放入在适当的地方。现在,如果我们停止程序并重新启动它,测试现在可以正常工作,这很好,但我们真正想做的是能够在不重新启动程序的情况下重新运行测试。
到目前为止,我已尝试更改连接字符串以添加“pooling ='false'”,并在每次连接测试之前和之后执行OracleConnection.ClearAllPools(),但没有骰子。
由于我们接受多个数据库提供程序,我们的测试基本上以DBConnection对象开始,然后使用dbProviderFactory返回与其的适当连接。然后我们只分配ConnectionString并尝试打开:
DbConnection conn = null;
DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
conn = factory.CreateConnection();
OracleConnection.ClearAllPools();
conn.ConnectionString = connectionString;
conn.Open();
所以基本上就是这样。如果有人可以告诉我如何清除该连接,以便它识别新的tnsnames.ora文件并正确连接,我将非常感激。感谢。