无法读取数据库名称 Web 项目
Posted
技术标签:
【中文标题】无法读取数据库名称 Web 项目【英文标题】:Can't read database name web project 【发布时间】:2021-12-09 20:40:09 【问题描述】:试图读取数据库名称,但它在站点中不起作用。使用带有解决方案文件的 asp.net Web 项目。我把它放在 web.config 中。这将根据开发数据库或生产数据库 PRODDB 通过 Web 配置转换文件和脚本进行更改。
<appSettings>
<add key="databaseName" value="DEVELDB"/>
<add key="operatingEnvironment" value="dev"/>
</appSettings>
在 Global.asax.cs 文件中:
void Application_Start(object sender, EventArgs e)
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
var operatingEnvironment = WebConfigurationManager.AppSettings["operatingEnvironment"].ToString();
if (operatingEnvironment == "dev")
Application["DBE"] = WebConfigurationManager.AppSettings["databaseName"].ToString();
在 login.cs 类文件中:
internal static DatabaseConnection GetDatabaseConnection()
return
new DatabaseConnection(
new ConnectionProperties
User = Shared.User,
Application = Shared.Application,
DatabaseName = (string)HttpContext.Current.Application["DBE"]
);
在 Web.Development.config 文件中有:
<appSettings>
<add key="databaseName" value="DEVELDB" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="operatingEnvironment" value="dev" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
但是,每当我在登录后进行调试时,它都会转到下面的代码,这很好(与上面的代码相同)但是说没有指定数据库名称?我将它指定为 DEVELDB 并使用“DBE”来引用它。但是,它不是调试到另一个区域然后到那里,而是直接到那里并杀死它?
...
User = Shared.User,
Application = Shared.Application,
DatabaseName = (string)HttpContext.Current.Application["DBE"]
);
【问题讨论】:
【参考方案1】:与数据库的连接位于“webconfig”文件中的“connectionstrings”标签中。如果您需要SqlServer,如下所示
<configuration>
<connectionStrings>
<add name="TwoWayConn" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TwoWayData.accdb"
providerName="System.Data.OleDb" />
<add name="TWOWAYDATASQL" connectionString="Data Source=TBIRD\SQLEXPRESS1;Initial Catalog=TWOWAYDATASQL.MDF;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
....
</configuration>
我是不是误解了你要做什么?
【讨论】:
嗨@GailV,实际上,我们在这里为 DB 连接做不同的事情,这在 Web 项目中更是一种不同的方式。但是,我决定以原始方式在 Global.asax 文件中引用数据库并将连接数据添加到类中。谢谢!以上是关于无法读取数据库名称 Web 项目的主要内容,如果未能解决你的问题,请参考以下文章