Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不重新编译的情况下更改连接字符串_C#_.net_Linq To Sql_Database Connection - Fatal编程技术网

C# 在不重新编译的情况下更改连接字符串

C# 在不重新编译的情况下更改连接字符串,c#,.net,linq-to-sql,database-connection,C#,.net,Linq To Sql,Database Connection,我正在开发一个WinForm应用程序。我已经将数据访问逻辑实现到一个“库项目”中,我在WinForm项目中将其设置为引用。我正在使用LINQtoSQL连接到我的项目数据库,将我使用的表映射到一个dbml文件中。现在我必须发布我的项目,并将连接字符串更改为指向生产数据库 是否可以在不重新编译项目的情况下更改连接字符串? 这将是非常有用的调试时间和维护 我试图在app.config和Settings文件中更改它,但它似乎仍然指向开发数据库 我哪里做错了 本文中建议的解决方案非常好: 但我决定用另一种

我正在开发一个WinForm应用程序。我已经将数据访问逻辑实现到一个“库项目”中,我在WinForm项目中将其设置为引用。我正在使用LINQtoSQL连接到我的项目数据库,将我使用的表映射到一个
dbml
文件中。现在我必须发布我的项目,并将连接字符串更改为指向生产数据库

是否可以在不重新编译项目的情况下更改连接字符串? 这将是非常有用的调试时间和维护

我试图在
app.config
Settings
文件中更改它,但它似乎仍然指向开发数据库


我哪里做错了

本文中建议的解决方案非常好:

但我决定用另一种方式解决我的问题

在不修改
dbml
文件中的任何内容的情况下,我在DAO类中添加了一个构造函数,该构造函数接受一个参数:

public MyDataAccessClass(string connectionString)
{
     _connString = connectionString;
}
然后,我没有使用
DataClasses()
构造函数来实例化LINQ-to-SQL类,而是将其替换为
DataClasses(\u connString)


现在我可以在需要的地方使用数据访问库。连接字符串将在引用应用程序(或其他任何地方)的
app.config
中设置。

您能创建一个最小的测试用例吗?一个尽可能小的应用程序仍然存在问题?连接字符串的定义在哪里?@KirillPolishchuk我已经创建了一个用于访问数据的dll项目。当我将使用的表放入dbml文件时,连接字符串保存在
settings
文件中,也保存在我的“数据访问项目”的
app.config
文件中。我想在项目中指定用作此dll引用的连接字符串。。。有可能吗?这应该对你有帮助@Aravind很棒!是的,这很有帮助!!!非常感谢你!您链接的页面不再可用。你能在你的回答中总结一下吗?