Не удается прочитать имя базы данных веб-проекта

#c# #asp.net #projects-and-solutions #web-project #data-connections

#c# #asp.net #проекты и решения #веб-проект #подключения к данным

Вопрос:

Пытаюсь прочитать имя базы данных, но оно не работает на сайте. Используя asp.net веб — проект с файлом решения. Я поместил это в web.config. Это изменится в зависимости от базы данных разработки или производственной базы данных PRODDB с помощью файлов и сценариев преобразования веб-конфигурации.

 lt;appSettingsgt;  lt;add key="databaseName" value="DEVELDB"/gt;  lt;add key="operatingEnvironment" value="dev"/gt;  lt;/appSettingsgt;  

В файле 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 есть:

 lt;appSettingsgt;  lt;add key="databaseName" value="DEVELDB" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" /gt;  lt;add key="operatingEnvironment" value="dev" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" /gt;  lt;/appSettingsgt;  

Однако всякий раз, когда я отлаживаю после входа в систему, он переходит к коду ниже, который хорош (такой же, как закодирован выше), но говорит, что имя базы данных не было указано? Я указал его как DEVELDB и использовал «DBE» для ссылки на него. Однако это не похоже на то, что он отлаживается в другой области и туда, просто прямо туда и убивает его?

 ...  {  User = Shared.User,  Application = Shared.Application,  DatabaseName = (string)HttpContext.Current.Application["DBE"]  });  

Ответ №1:

Подключения к базам данных находятся внутри тегов «строки подключения» в файле «webconfig». Если вам нужен SQLServer, он показан ниже

 lt;configurationgt;  lt;connectionStringsgt;  lt;add name="TwoWayConn" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|TwoWayData.accdb"  providerName="System.Data.OleDb" /gt;  lt;add name="TWOWAYDATASQL" connectionString="Data Source=TBIRDSQLEXPRESS1;Initial Catalog=TWOWAYDATASQL.MDF;Integrated Security=True"  providerName="System.Data.SqlClient" /gt;  lt;/connectionStringsgt; ....   lt;/configurationgt;  

Я неправильно понимаю, что вы пытаетесь сделать?