代码之家  ›  专栏  ›  技术社区  ›  Missy

Visual Studio在哪里存储连接字符串

  •  0
  • Missy  · 技术社区  · 6 年前

    问题是表适配器一直引用我没有为其设置的连接字符串。当我转到DataSet Designer中的每个数据表时,连接显示“MyConnectionString(settings)”。当我搜索不正确的连接字符串时,VS找不到它。

    在多个解决方案上重用的项目。我有三种配置:调试、暂存和发布。每个配置都有自己的连接字符串。我的应用程序。配置如下所示:

     <?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=CorrectDataSourceforthisConfig\SQL;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>
    

    在我的设置中。设计师cs,我有这个:

        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=CorrectDataSourceForDebug\SQL;Initial Catalog=MyDB;Integrated Security=True")]
        public string RMSConnectionString {
            get {
                return ((string)(this["MyConnectionString"]));
            }
        }
    

    这个恶意连接字符串来自哪里?任何帮助、想法、建议和意见都将不胜感激。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Missy    6 年前

    连接字符串存储在你的应用程序中。配置文件,有时在数据集中,有时在代码中。在我的例子中,我可以通过进入Explorer并删除我意外创建的所有文件(即Form1)以及搜索我的解决方案并确保没有引用错误的连接字符串来解决此问题。然后,我删除了的所有实例。我在不同的解决方案中包含此项目并重新引用和重建所有项目时使用的DLL。

        2
  •  1
  •   BlueTalon    4 年前

    还有一台机器。config,它是系统上的主配置文件。这可能是存储隐藏连接字符串的位置。

    https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-and-configuration-files

    机器。配置文件还包含ConnectionString部分,该部分包含Visual Studio使用的连接字符串。从应用程序中按提供商名称检索连接字符串时。Windows应用程序中的配置文件,计算机中的连接字符串。先加载config,然后加载app中的条目。配置。在connectionStrings元素之后立即添加clear将从内存中的数据结构中删除所有继承的引用,以便仅在本地应用程序中定义连接字符串。考虑配置文件。