Vb.net App.config-LocalSqlServer连接字符串

Vb.net App.config-LocalSqlServer连接字符串,vb.net,Vb.net,请参阅下面的代码: Public Shared Sub SyncConnectionStrings() Dim strCon As String Dim tyDatabase As typeDatabase Dim boolConfigChanged As Boolean 'Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(Con

请参阅下面的代码:

Public Shared Sub SyncConnectionStrings()
    Dim strCon As String
    Dim tyDatabase As typeDatabase
    Dim boolConfigChanged As Boolean
    'Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
    Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
    Dim strConnectionString As ConnectionStringSettings            
    For Each strConnectionString In ConfigurationManager.ConnectionStrings
        'More code here, but irrelevant for this question.
    Next
End Sub

代码循环遍历app.config文件中的所有连接字符串。
app.config
中有三个连接字符串,但找到了四个连接字符串。其中定义了:LocalSqlServer(这是
ConfigurationManager.ConnectionStrings.Name
)吗?

它在位于的Machine.config全局文件中定义

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\CONFIG".
它是在安装NET.Framework时生成的,并且是在ASPNETDB上工作的工具所需要的

如果您不需要它,可以尝试将其添加到app.config中

<connectionStrings>
<clear/>
.....

.....
或者也

<connectionStrings>
<remove name="LocalSqlServer" />


我真的建议不要更改Machine.Config中的任何内容,除非您知道其副作用。

您的Machine.Config中可能不仅仅包含LocalSqlServer。e、 我刚刚在Machine.config中有MySql连接的计算机上运行了我的应用程序

您可以使用
ConnectionString设置的
ElementInformation
属性来确定其来源:

foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings)
{
    ElementInformation elementInfo = c.ElementInformation;
    String source = elementInfo.Source;

    if (source == null)
    {
        //Machine.config
    } 
    else
    {
        Console.WriteLine("{0} {1} {2}", c.Name, elementInfo.Source, c.ConnectionString);
    }
}

谢谢你。你知道是否有办法只在app.config连接字符串上循环吗?答案已更新,不确定副作用,但你可以尝试,如果出现任何问题,恢复初始状态