繁体   English   中英

从asp.net中的Web.config获取连接字符串

[英]Get Connection String from Web.config in asp.net

我想知道从asp.net中的web.config文件获取连接字符串的方法。

我只知道以下方式。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

    namespace Sherserve.DataAccessLayer
    {
        public class DBGateway
        {
            public static string conString;

            public DBGateway()
            {
                conString = ConfigurationManager.ConnectionStrings["test"].ToString();
            }
        }
    }

使用ConfigurationManager.ConnectionStrings是唯一正确的方法,通过健全性检查正确使用它可以有这样的代码:

public DBGateway()
{
    ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings["test"];
    if (mySetting == null || string.IsNullOrEmpty(mySetting.ConnectionString))
        throw new Exception("Fatal error: missing connecting string in web.config file");
    conString = mySetting.ConnectionString;
}

如果连接字符串丢失,这将抛出有用的错误,而不是隐藏的“空对象”错误。

值得一提的是ConnectionStringSettings类重写了ToString()方法:

public override string ToString()
{
    return this.ConnectionString;
}

因此,这意味着使用ConfigurationManager.ConnectionStrings["test"].ToString()ConfigurationManager.ConnectionStrings["test"].ConnectionString然而, ConfigurationManager.ConnectionStrings["test"].ConnectionString仍然可以更好地执行健全性检查,并且个人看起来更干净使用实际属性而不是依靠班级给予它。

以下是整个解决方案: -

string constring = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;
SqlConnection con = new SqlConnection(constring);
DataSet ds = new DataSet();
try
 {
   SqlDataAdapter dataAdapter = new SqlDataAdapter(query, con);
   SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
   con.Open();
   dataAdapter.Fill(ds, "table");
   return ds;
 }
 catch (Exception ex)
  {
  }
    finally
    {
        if (con.State == System.Data.ConnectionState.Open)
            con.Close();
    }

这是您可以将数据库中的记录提取到数据表中的方法。

希望这是你想要的。

我的WebAssistant类有一个方法。 我在包含我的WebAppName的appSettings上有一个键,请检查以下行:

<add key="DOMAIN_NAME" value="mRizvandi.com"/>

和我的连接名称alwyas有“DomainName”+“DBConnectionString”模板,例如:

<add name="mRizvandiDBConnectionString" connectionString=...

好的,一切都准备好了连接字符串而不传递任何字符串。

    public static string GetDBConnectionString()
    {
        string retValue = "";
        string domainUrl = "";
        string connectionKey = "";
        string dbConnectionString = "";

        domainUrl = GetDomainUrl();
        connectionKey = domainUrl.Substring(0, domainUrl.IndexOf(".")) + "DBConnectionString";
        dbConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[connectionKey].ToString();
        retValue = dbConnectionString;

        return retValue;
    }

我希望会有所帮助。

以下代码适合我。 我已经在web.config中没有建立connectionString的情况下添加了异常

web.config中:

 <configuration>
  <connectionStrings>
    <add name="DBConnection" connectionString="Data Source=myaddress;Initial Catalog=MyCatalog;User ID=myuser;Password=pass;Encrypt=True;TrustServerCertificate=False"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

在我的连接类中:

static internal string GetSqlConnectionString(){

try {
    ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings("DataBaseConnection");
    if (mySetting == null)
        throw new Exception("Database connection settings have not been set in Web.config file");

    return mySetting.ConnectionString;

} catch (Exception ex) {
    throw;
}}

尝试

 string ConString = System.Configuration.ConfigurationManager.ConnectionStrings[ConfigurationManager.ConnectionStrings.Count -1].ConnectionString;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM