- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在项目中有一个 SQL Server CE 数据库,我不想将其存储在 %AppData% 目录中的某个位置。但是我找不到一种方法来引用连接字符串中的应用程序数据路径(在 App.Config 中)
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="EntityConnectionString" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|ApplicationData|\Entities.sdf"" providerName="System.Data.EntityClient"/>
</connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
到目前为止,我了解到:不支持 %APPDATA% 并且使用设置类(如建议的那样)也不起作用(设置类在已抛出异常时未构建)。
是否可以在 connectionString 属性(在 App.Config 中)中使用应用程序数据文件夹(或其他特殊文件夹)?
注意:我似乎正在寻找一种解决方案来尽早修改连接字符串(在代码中),而不是 native App.Config 解决方案。
最佳答案
使用自定义构建环境变量支持:
让你拥有:
<connectionStrings>
<add name="My" connectionString="..;Data Source=|%AppData%|\Entities.sdf;.." />
</connectionStrings>
你可以使用:
using System.Configuration; // requires reference to System.Configuration.dll
ConfigurationManager.ConnectionStrings["EntityConnectionString"].ConnectionString.Replace("%AppData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
接下来你可以支持多个环境变量:
var vars = new Dictionary<string, string>
{
{ "%AppData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
{ "%Temp%", Environment.GetFolderPath(SpecialFolder.Temp) },
// etc..
{ "%YourNonStandardVar", "YourNonStandartPath" }
};
var result = ConfigurationManager.ConnectionStrings["YourString"].ConnectionString
foreach (var v in vars)
result = result.Replace(v.Key, v.Value);
关于c# - 如何在 (App.config) connectionString 中使用应用程序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243731/
我正在尝试从 Microsoft Access 数据库文件中提取数据,以便填充多个文本框。 (文本框都是用 XAML 完成的。)我很确定我遗漏了一些东西,因为没有访问数据库文件。 这是我的代码:
我在一个 Windows Server 上有大约 10 个不同的 .NET 项目,大部分是 .NET 4.0,但也有一些是 .NET 2.0 其中一些项目是 asp.net,一些是后台实用程序/服务。
我在一个 Windows Server 上有大约 10 个不同的 .NET 项目,大部分是 .NET 4.0,但也有一些是 .NET 2.0 其中一些项目是 asp.net,一些是后台实用程序/服务。
我们有一个 ASP.NET(不是 MVC)应用程序要迁移到 Azure。在许多页面中我们都有这样的代码: " SelectCommand="usp_list_resources" Select
我有一个在 Linux 上运行 Mono 的 winforms 应用程序,我想从我的 app.config 文件中获取 ConnectionString 字符串cs = ConfigurationMa
我刚学c#。我正在尝试在 c# windows 窗体中制作简单的 CRUD,但那里出现了一些错误。错误提示 The ConnectionString property has not been ini
我在 appsettings.json 文件中添加了我的连接字符串。我需要访问后台操作所需的连接字符串,但为了使用连接字符串,我必须通过同一解决方案中不同项目的静态类进行访问。我无法访问使用Confi
我需要从 ASP NET 应用程序连接到我的 Dynamics CRM 365 本地实例。我的问题是连接帐户的密码如下:T,jL4O&vc%t;30 我有以下错误: vc 未定义
在具有两个数据源(如或条件)的应用程序中,是否可以使用两个连接字符串具有相同的名称。 任何人都可以帮助我做到这一点。 最佳答案 这是不可能的,因为 ConnectionStrings 是在 KeyV
我遇到了这个小问题:每次我的代码执行下面的 InsertOrder() 例程时,我都会收到此异常消息:“连接字符串尚未启动”。 这是 InsertOrder() 方法的代码: private vo
我有一个 mysql 查询,我试图运行该查询以显示在 datagridview 上。我的 ConnectionString 有一个 serverName 变量,但我的代码不会拾取它。 当表单加载时,它
是否可以在运行时修改 app.config/web.config 中定义的连接字符串?我想根据运行应用程序/网站的机器使用不同的配置文件(当然,仅用于调试目的。我们将在部署时使用常规配置文件)。 我可
我创建了连接字符串: connection.ConnectionString = @"Provider=abcdef; Server=123....; Database=abc; User Id=us
我想为 Visual Studio 编写一个扩展,这将使我能够为指定的表生成一个模型。 我使用以下代码将 MyCommand 项添加到服务器资源管理器中表的上下文菜单中: Commands2 comm
我正在使用带有 MySql 数据库的 asp.net web 应用程序,具有以下连接字符串 web.config: 这是我使用的代码,用于从 web.config 获取连接字符串: System.c
我是 C# 编程的初学者。 我需要编辑/设置/更改我存储在 app.config 中的连接字符串,我正在使用 VS 数据库向导来创建查询。 如果你能写代码那就太好了:) 最佳答案 像这样的事情应该让你
我有一个带有 Web 项目的解决方案,我决定向该解决方案添加一个单元测试项目。在运行测试时,其中一个测试失败并出现此错误: Result Message: Test method DetailsRol
我有一个带有多个 ConnectionString 的 Web.config 请注意,connectionString 值不是空字符串,而是一个空格。任何
在 FlatFile 中似乎有 2 种方法可以设置连接字符串连接属性: 使用 ConnectionString属性(property) 使用 ConnectionString表达式 将使用哪一种?有没
我有一个 ConnectionString,我想用 .txt 文件中的值将值(数据源、数据库、用户 ID、密码)传递给它,我需要读取它们,然后将它们传递给 connectionString 但我很困惑
我是一名优秀的程序员,十分优秀!