web-dev-qa-db-fra.com

Utiliser le Web.Config pour configurer ma chaîne de connexion à la base de données SQL?

Est-ce que quelqu'un peut m'aider s'il vous plaît? Je suis confus.

Je veux configurer ma chaîne de connexion pour pouvoir l'appeler à partir de mon fichier Web.Config.

J'ai besoin d'un moyen de l'appeler à partir de mon code, veuillez faire un petit exemple. :(

J'ai également besoin d'aide pour configurer le fichier Web.Config.

Je ne sais pas quelles propriétés utiliser. Voici une capture d'écran de mes informations d'identification. Je n'ai pas de mot de passe configuré pour Windows. Je suis vraiment perdu ici.

alt text

21
Sergio Tapia

Voici un excellent aperçu sur MSDN qui explique comment procéder.

Dans votre web.config, ajoutez une entrée de chaîne de connexion:

<connectionStrings>
  <add 
    name="MyConnectionString" 
    connectionString="Data Source=sergio-desktop\sqlexpress;Initial 
    Catalog=MyDatabase;User ID=userName;Password=password"
    providerName="System.Data.SqlClient"
  />
</connectionStrings>

Décomposons les composants ici:

La source de données est votre serveur. Dans votre cas, une instance SQL nommée sur sergio-desktop.

Le catalogue initial est la base de données par défaut à laquelle les requêtes doivent être exécutées. Pour des utilisations normales, ce sera le nom de la base de données.

Pour l'authentification, nous avons quelques options.

ID utilisateur et Mot de passe signifie utiliser les informations d'identification SQL, pas Windows, mais tout de même très simple - allez simplement dans votre section Sécurité de votre serveur SQL et créez une nouvelle connexion. Donnez-lui un nom d'utilisateur et un mot de passe et donnez-lui des droits sur votre base de données. Tous les dialogues de base sont très explicites.

Vous pouvez également utiliser la sécurité intégrée, ce qui signifie que votre application .NET essaiera de se connecter à SQL à l'aide des informations d'identification du processus de travail. Vérifiez ici pour plus d'informations à ce sujet.

Enfin, dans le code, vous pouvez accéder à votre chaîne de connexion en utilisant:

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
36
Rex M

http://www.connectionstrings.com est un site où vous pouvez trouver de nombreuses chaînes de connexion. Il vous suffit de copier-coller et de le modifier selon vos besoins. Il est sûr d'avoir toutes les chaînes de connexion pour tous vos besoins.

3
Magic

Ajoutez ceci à votre configuration Web et changez le nom du catalogue qui est le nom de votre base de données:

  <connectionStrings>
    <add name="MyConnectionString" connectionString="Data Source=SERGIO-DESKTOP\SQLEXPRESS;Initial Catalog=YourDatabaseName;Integrated Security=True;"/></connectionStrings>

Référence System.Configuration Assembly dans votre projet.

Voici comment récupérer la chaîne de connexion à partir du fichier de configuration:

System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
2
Sergey
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class form_city : System.Web.UI.Page
{
    connection con = new connection();
    DataTable dtable;
    string status = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        TextBoxWatermarkExtender1.WatermarkText = "Enter State Name !";        
        if (!IsPostBack)
        {
            status = "Active";
            fillgrid();
            Session.Add("ope", "Listing");
        }
    }
    protected void fillgrid()
    {
        //Session.Add("ope", "Listing");
        string query = "select *";
        query += "from State_Detail where Status='" + status + "'";
        dtable = con.sqlSelect(query);
        grdList.DataSource = dtable;
        grdList.DataBind();
        lbtnBack.Visible = false;
    }
    protected void grdList_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdList.PageIndex = e.NewPageIndex;
        string operation = Session["ope"].ToString();
        if (operation == "ViewLog")
            status = "Inactive";
        else if (operation == "Listing")
            status = "Active";
        fillgrid();
    }
    public string GetImage(string status)
    {
        if (status == "Active")
            return "~/images/green_acti.png";
        else
            return "~/images/red_acti.png";
    }
    protected void grdList_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string st = "Inactive";
        int State_Id = Convert.ToInt32(grdList.DataKeys[e.RowIndex].Values[0]);
        string query = "update State_Detail set Status='" + st + "'";
        query += " where State_Id=" + State_Id;
        con.sqlInsUpdDel(query);
        status = "Active";
        fillgrid();
    }    
    protected void grdList_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName.Equals("Select"))
        {
            string query = "select * ";
            query += "from State_Detail where State_Id=" + e.CommandArgument;
            dtable = con.sqlSelect(query);
            grdList.DataSource = dtable;
            grdList.DataBind();
            lbtnBack.Visible = true;
        }
    }
    protected void ibtnSearch_Click(object sender, ImageClickEventArgs e)
    {
        Session.Add("ope", "Listing");
        if (txtDepId.Text != "")
        {
            string query = "select * from State_Detail where State_Name like '" + txtDepId.Text + "%'";
            dtable = con.sqlSelect(query);
            grdList.DataSource = dtable;
            grdList.DataBind();
            txtDepId.Text = "";
        }
    }
    protected void grdList_RowEditing(object sender, GridViewEditEventArgs e)
    {
        int State_Id = Convert.ToInt32(grdList.DataKeys[e.NewEditIndex].Values[0]);
        Session.Add("ope", "Edit");
        Session.Add("State_Id", State_Id);
        Response.Redirect("form_state.aspx");
    }

    protected void grdList_Sorting(object sender, GridViewSortEventArgs e)
    {
        string operation = Session["ope"].ToString();
        if (operation == "ViewLog")
            status = "Inactive";
        else if (operation == "Listing")
            status = "Active";

        string query = "select * from State_Detail";
        query += " where Status='" + status + "'";
        dtable = con.sqlSelect(query);
        DataView dview = new DataView(dtable);
        dview.Sort = e.SortExpression + " asc";
        grdList.DataSource = dview;
        grdList.DataBind();
    }
}
<asp:Image ID="imgGreenAct" ImageUrl='<%# GetImage(Convert.ToString(DataBinder.Eval(Container.DataItem, "Status")))%>' AlternateText='<%# Bind("Status") %>' runat="server" />
1
Nilesh Umaretiya

Si vous utilisez la connexion à la base de données sous les outils dans Visual Studio, vous pourrez ajouter le nom du serveur et de la base de données et tester la connexion. En cas de succès, vous pouvez copier la chaîne en bas de la boîte de dialogue.

0
Fergal Mohan

Votre meilleur pari, en recommençant comme vous êtes, est d'aller chercher la bibliothèque d'entreprise. Ils ont un outil de configuration que vous pouvez utiliser pour tout câbler à votre place.

Ils ont également un bloc d'application d'accès aux données qui est très utile et une documentation remplie de bons échantillons.

http://www.Microsoft.com/downloads/details.aspx?FamilyId=90DE37E0-7B42-4044-99BE-F8ECFBBC5B65&displaylang=en

0
Eric

Si vous utilisez SQL Express (ce que vous êtes), vos informations d'identification de connexion sont.\SQLEXPRESS

Voici la chaîne de connexion dans le fichier de configuration Web que vous pouvez ajouter:

<connectionStrings>
<add connectionString="Server=localhost\SQLEXPRESS;Database=yourDBName;Initial Catalog= yourDBName;Integrated Security=true" name="nametoCallBy" providerName="System.Data.SqlClient"/>
</connectionStrings>

L'endroit est juste au-dessus de la balise system.web.

Ensuite, vous pouvez l'appeler par:

connString = ConfigurationManager.ConnectionStrings["nametoCallBy"].ConnectionString;
0
waqasahmed