Подтвердить что ты не робот

Получить строку подключения из Web.config в asp.net

Я хочу знать, как получить строку подключения из файла web.config в asp.net.

Я просто знаю только ниже.

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();
            }
        }
    }
4b9b3361

Ответ 1

Использование 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 однако вы все же лучше выполняете проверку работоспособности, и лично он выглядит более чистым, чтобы использовать фактическое свойство, а не зависят от класса, чтобы дать ему.

Ответ 2

Вот целое решение: -

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();
    }

Вот как вы можете извлекать записи из базы данных в datatable.

Надеюсь, это то, что вы искали.

Ответ 3

У меня есть метод в моем классе WebAssistant. У меня есть ключ в appSettings, который содержит мое имя WebAppName, проверьте приведенную ниже строку:

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

и мое имя соединения alwyas имеет шаблон "DomainName" + "DBConnectionString", такой как:

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

Хорошо, все готовы получить 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;
    }

Надеюсь, это будет полезно.

Ответ 4

Следующий код работает для меня. Я добавил исключение в случае, если connectionString не основано в web.config

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;
}}

Ответ 5

Пытаться

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