问题是表适配器不断引用我尚未为其设置的连接字符串。当我转到数据集设计器中的每个数据表时,连接说" myConnectionsTring(设置("。当我搜索不正确的连接字符串时,VS找不到它。
通过多个解决方案重复使用的项目。我有三个配置:调试,分期和发布。每种配置都有其自己的连接字符串。我的app.config看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings configSource="connect.config"/>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
每个配置文件看起来像这样:
<connectionStrings>
<clear/>
<add name="Properties.Settings.MyConnectionString" connectionString="Data Source=CorrectDataSourceforthisConfigSQL;Initial Catalog=MyDB;Trusted_Connection=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
在我的数据集中,我有此XML:
<Connections>
<Connection AppSettingsObjectName="Settings" AppSettingsPropertyName="MyConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="MyConnectionString (Settings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.MyMenu.Properties.Settings.GlobalReference.Default.MyConnectionString" Provider="System.Data.SqlClient" />
</Connections>
在我的设置.designer.cs中,我有:
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=CorrectDataSourceForDebugSQL;Initial Catalog=MyDB;Integrated Security=True")]
public string RMSConnectionString {
get {
return ((string)(this["MyConnectionString"]));
}
}
这个流氓连接字符串来自哪里?任何帮助,想法,建议和意见都将不胜感激。
连接字符串存储在您的app.config文件中,以及有时在数据集中,有时在您的代码中。就我而言,我能够通过进入Explorer并删除我意外创建的所有文件(即Form1(,并确保没有提及不正确的连接字符串来解决此问题。然后,我删除了将该项目包括在不同解决方案中并重新参考和重建所有项目时使用的所有实例。
也有Machine.config,它是系统上的主配置文件。这可能是您隐藏的连接字符串存储的地方。
https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-sinter-and-configuration-files-files
Machine.config文件还包含一个ConnectionsRings部分,其中包含Visual Studio使用的连接字符串。从app.config文件中的app.config文件中检索连接字符串时,machine.config中的连接字符串首先加载,然后从app.config中加载。在ConnectionStrings元素删除内存中的数据结构后,立即添加清晰的参考文献,以便仅考虑本地app.config文件中定义的连接字符串。