wake-up-neo.net

Holen Sie sich die Verbindungszeichenfolge von Web.config in asp.net

Ich möchte wissen, wie Sie die Verbindungszeichenfolge aus der Datei web.config in asp.net abrufen können.

Ich kenne nur den unten angegebenen Weg.

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

Die Verwendung von ConfigurationManager.ConnectionStrings ist die einzig richtige Art und Weise, um sie mit Sanity Check richtig zu verwenden, können Sie solchen Code haben:

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

Dadurch wird ein nützlicher Fehler ausgegeben, falls die Verbindungszeichenfolge fehlt, anstelle eines kryptischen Fehlers "Nullobjekt".

Erwähnenswert ist, dass die ConnectionStringSettings-Klasse die ToString()-Methode überschreibt:

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

Es bedeutet also, dass mit ConfigurationManager.ConnectionStrings["test"].ToString() dasselbe wie mit ConfigurationManager.ConnectionStrings["test"].ConnectionString zu tun ist. Sie sollten jedoch noch besser die Sanitätsprüfung durchführen und persönlich sieht es sauberer aus, die tatsächliche Eigenschaft zu verwenden und nicht von der Klasse abhängig zu sein.

40
Shadow Wizard

Hier ist die ganze Lösung: -

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

Auf diese Weise können Sie Datensätze aus der Datenbank in die Datentabelle abrufen.

Hoffe, das ist es, wonach du gesucht hast.

8
RL89

Der folgende Code funktioniert für mich . Ich habe die Ausnahme hinzugefügt, falls connectionString nicht in web.config gefunden wurde

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>

In meiner Verbindungsklasse:

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;
}}
0
Crying Freeman

Ich habe eine Methode für meine WebAssistant-Klasse . Ich habe einen Schlüssel für AppSettings, der meinen WebAppName enthält. Überprüfen Sie die folgende Zeile:

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

und mein Verbindungsname "alwyas" hat die Vorlage "DomainName" + "DBConnectionString", wie zum Beispiel:

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

Ok, alles ist bereit, um einen Verbindungsstring zu erhalten, ohne einen String zu übergeben.

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

Ich hoffe es wäre hilfreich.

0
mRizvandi

Versuchen 

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