web-dev-qa-db-fra.com

Comment écrire une chaîne de connexion dans un fichier web.config et la lire?

J'essaye d'écrire la chaîne de connexion à Web.config comme ceci:

<connectionStrings>
  <add name="Dbconnection" connectionString="Server=localhost; 
       Database=OnlineShopping ; Integrated Security=True"/>
</connectionStrings >

et lisez-le comme ceci:

string strcon = 
    ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
SqlConnection DbConnection = new SqlConnection(strcon);

lors de l'exécution du programme, j'obtiens une erreur en raison de la référence nulle. mais quand j'utilise ce code:

SqlConnection DbConnection = new SqlConnection();
DbConnection.ConnectionString = 
    "Server=localhost; Database=OnlineShopping ; Integrated Security=True";

Je ne reçois aucune erreur et le programme fonctionne correctement! Quel est le problème?

12
user2715779

Ajouter une référence pour ajouter System.Configuration: -

System.Configuration.ConfigurationManager.
    ConnectionStrings["connectionStringName"].ConnectionString;

Vous pouvez également modifier le fichier WebConfig pour inclure le nom du fournisseur: -

<connectionStrings>
  <add name="Dbconnection" 
       connectionString="Server=localhost; Database=OnlineShopping;
       Integrated Security=True"; providerName="System.Data.SqlClient" />
</connectionStrings>
11
Rahul Tripathi

Web.config:

<connectionStrings>
    <add name="ConnStringDb" connectionString="Data Source=localhost;
         Initial Catalog=DatabaseName; Integrated Security=True;" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

c # code:

using System.Configuration;
using System.Data

SqlConnection _connection = new SqlConnection(
          ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString());

try
{
    if(_connection.State==ConnectionState.Closed)
        _connection.Open();
}
catch { }
9
Sumon Banerjee

Êtes-vous sûr que votre fichier de configuration (web.config) est au bon endroit et que la chaîne de connexion est réellement dans le fichier (généré)? Si vous publiez votre fichier, le contenu de web.release.config peut être copié.

La configuration et l'accès à la chaîne de connexion me semblent corrects. Je voudrais toujours ajouter un nom de provid

<connectionStrings>
  <add name="Dbconnection" 
       connectionString="Server=localhost; Database=OnlineShopping; 
       Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
4
slfan

Essayez ceci Après avoir ouvert le fichier web.config dans l'application et ajouté un exemple de connexion à la base de données dans la section connectionStrings comme ceci 

<connectionStrings>
<add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient"/>
</connectionStrings >
2
user3899014

essaye ça

var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
2
santosh singh

Essayez d'utiliser WebConfigurationManager au lieu de ConfigurationManager

1
ProgramFOX

Après avoir ouvert le fichier web.config dans l'application, ajoutez un exemple de connexion à la base de données dans la section connectionStrings comme ceci:

<connectionStrings>  
    <add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient" />   
</connectionStrings>  

Déclaration de connectionStrings dans le fichier web.config:

 <add name="dbconnection" connectionString="Data Source=Soumalya;Integrated Security=true;Initial Catalog=MySampleDB" providerName="System.Data.SqlClient" />   

Aucun nom d'utilisateur ni mot de passe n'est nécessaire pour accéder au serveur de base de données . Maintenant, écrivez le code pour obtenir la chaîne de connexion à partir du fichier web.config dans notre fichier codebehind. Ajoutez l'espace de noms suivant dans le fichier codebehind.

using System.Configuration;

Cet espace de noms est utilisé pour obtenir les détails de la section de configuration à partir du fichier web.config.

using System;  
using System.Data.SqlClient;  
using System.Configuration;  
public partial class _Default: System.Web.UI.Page {  
    protected void Page_Load(object sender, EventArgs e) {  
        //Get connection string from web.config file  
        string strcon = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;  
        //create new sqlconnection and connection to database by using connection string from web.config file  
        SqlConnection con = new SqlConnection(strcon);  
        con.Open();  
    }  
}  
0
Raju Paladiya