Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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#_Asp.net - Fatal编程技术网

C# 自定义数据库连接类问题

C# 自定义数据库连接类问题,c#,asp.net,C#,Asp.net,在我们的web项目中,我们有一个自定义数据库连接类,它创建SqlConnection对象,并从web.config为我们获取DB连接字符串 虽然这很好,但有一个问题。web项目中的所有项目都依赖于该web.config,因此该类可以工作 在其他不需要web.config的解决方案或项目中,需要使用来自DL的此db连接,例如控制台项目,该项目正试图使用web项目中的一些DL方法来执行一些数据操作 因此,当我将一些BL项目方法添加到我的控制台解决方案中时,它希望创建DB连接,但我的控制台应用程序中没

在我们的web项目中,我们有一个自定义数据库连接类,它创建SqlConnection对象,并从web.config为我们获取DB连接字符串

虽然这很好,但有一个问题。web项目中的所有项目都依赖于该web.config,因此该类可以工作

在其他不需要web.config的解决方案或项目中,需要使用来自DL的此db连接,例如控制台项目,该项目正试图使用web项目中的一些DL方法来执行一些数据操作

因此,当我将一些BL项目方法添加到我的控制台解决方案中时,它希望创建DB连接,但我的控制台应用程序中没有web.config,所以它会崩溃

是否有比以下更好的方法来管理SqlConnection的创建: a) 将该类放入web项目中 b) 使该连接依赖于web.config键


因此,非基于web的项目可以使用BL,而无需该BL引用和依赖于最终依赖于web.config中的键的连接?

在控制台应用程序中,这些DB连接设置需要进入app.config,但您显然不希望它们同时存储在app.config和web.config中,因此,您可以使用以下技术

1) 将DN配置设置移动到单个DBSettings.config文件

2) 根据需要从Web.config和App.config中引用该配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings file="DBSettings.config">
   ...
</configuration>


.

在您的控制台应用程序中,这些DB连接设置需要进入app.Config,但是您显然不希望将它们同时存储在app.Config和Web.Config中,因此您可以使用以下技术

1) 将DN配置设置移动到单个DBSettings.config文件

2) 根据需要从Web.config和App.config中引用该配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings file="DBSettings.config">
   ...
</configuration>


.

没关系,它被抽象成另一个项目。是我的错。好吧,这还是个问题。即使该连接类被抽象出来,它最终还是从web.config中的键获取连接字符串值。因此,如果我不使用web.config,这对我的非web解决方案绝对没有好处。不管怎样,它被抽象到另一个项目中。是我的错。好吧,这还是个问题。即使该连接类被抽象出来,它最终还是从web.config中的键获取连接字符串值。因此,如果我不使用web.config,这对我的非web解决方案绝对没有好处。是的,我可以看到,从长远来看,使用DBSettings.config将是一件好事。但现在,在我的控制台应用程序中…它与web无关,我只需创建一个app.Config,现有代码就会知道如何在那里自动获取它而不是web.Config?我的控制台应用程序采用了一个全新的解决方案(称为数据加载),并使用我们的web项目正在使用的大约3个类(BL等)获取数据,但是没有在数据加载解决方案中使用任何web项目,因为它与web无关,只是一个实用程序解决方案。因此,如果我将App.config文件添加到数据加载解决方案或控制台应用程序中,那么它将像使用另一个xml配置文件一样工作?换句话说,如果我在我的控制台应用程序中添加了App.config,那么对System.Configuration.ConfigurationManager.AppSettings的调用应该会起作用?谢谢,添加了App.config,效果很好。现在我明白了什么时候你需要使用它了…以前从来没有用过。是的,从长远来看,我可以看到有一个DBSettings.config会很好。但现在,在我的控制台应用程序中…它与web无关,我只需创建一个app.Config,现有代码就会知道如何在那里自动获取它而不是web.Config?我的控制台应用程序采用了一个全新的解决方案(称为数据加载),并使用我们的web项目正在使用的大约3个类(BL等)获取数据,但是没有在数据加载解决方案中使用任何web项目,因为它与web无关,只是一个实用程序解决方案。因此,如果我将App.config文件添加到数据加载解决方案或控制台应用程序中,那么它将像使用另一个xml配置文件一样工作?换句话说,如果我在我的控制台应用程序中添加了App.config,那么对System.Configuration.ConfigurationManager.AppSettings的调用应该会起作用?谢谢,添加了App.config,效果很好。现在我明白了,当你需要使用它的时候…以前从未需要过。