【问题标题】:Can't read database name web project无法读取数据库名称 Web 项目
【发布时间】: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"]
                        });

【问题讨论】:

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


    【解决方案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 文件中引用数据库并将连接数据添加到类中。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多