Gridview et sqlserver [Résolu]

Signaler
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Bonjour,
je veux afficher des informations sur un datagridview avec une connexion sqlserver. J'ai fait le code suivant:

 protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource SqlDataSource1 = new SqlDataSource();
        SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet;
        SqlDataSource1.SelectCommand = "  Select substring (MAILET, charindex('@', MAILET) + 1, 4000), NOMET, PRENOMET from Matable ";
        BoundField maColonne = new BoundField();
        GridView1.Columns.Add(maColonne);
        GridView1.DataSource = SqlDataSource1;
        GridView1.DataBind();     
    }

Mon probléme c'est que je ne sais pas comment le relier avec mon connectionstring qui se trouve dans le webconfig que voici:

<connectionStrings>
       
    </connectionStrings>

J'arrive pas afficher ces informations, pouvez-vous m'aider?
Merci d'avance.

   

9 réponses

Messages postés
42
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2009

Bonjour,

En fait il te manque 2 lignes de definitions pour SqlDataSource1 pour recuperer ta chaine de connexion et ton fournisseur d'accés a partir du web.config:

SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["projet_gspConnectionString"].ToString();
SqlDataSource1.ProviderName = ConfigurationManager.ConnectionStrings["projet_gspConnectionString"].ProviderName;

( n'oublies pas de rajouter "using System.Configuration;" )

Sinon l'astuce c'est de créer un objet similaire dans le .aspx et de voir les attributs generé automatiquement dans la partie "source" pour decouvrir les elements a implementer au minimum.

A+
Messages postés
42
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2009

enléve DataSourceID="SqlDataSource1" de la definition de ta gridview dans le .aspx

ton sqldatasource1 a été declaré dans ton code behind du coup en le precisant dans ton .aspx il cherche des controle deja créé et paf ... ça fait des choca... ça bug parcequ'il ne le trouve pas.

A+
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci bien arxfwf.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Par contre j'ai l'erreur suivant:
DataSourceID de 'GridView1' doit être l'ID d'un contrôle de type IDataSource. Un
contrôle avec l'ID 'SqlDataSource1' est introuvable.
Messages postés
42
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2009

Gardes "GridView1.DataSource" pour affecter ton sqldatasource1 plutot que la methode "GridView1.DataSourceID" et il ne devrait plus y avoir d'erreur.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

C'est bien ce que j'avais mis:
 GridView1.DataSource = SqlDataSource1;
  GridView1.DataBind();
Et j'ai la meme erreur.
Messages postés
42
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2009

hmmm pourtant je n'ai fais que reprendre ton code et rajouté les 2 lignes précisées =/

Montres ton code en entier pour que je puisses verifier de mon coté.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Dans la page .aspx.cs  j'ai mis comme suit:
protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource SqlDataSource1 = new SqlDataSource();
        SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet;
        SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["projet_gspConnectionString"].ToString();
        SqlDataSource1.ProviderName = ConfigurationManager.ConnectionStrings["projet_gspConnectionString"].ProviderName;
        //SqlDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings["pubsConnectionString"].ConnectionString;
        SqlDataSource1.SelectCommand = "  Select substring (MAILET, charindex('@', MAILET) + 1, 4000) ";
        BoundField maColonne = new BoundField();
        //maColonne.HeaderText = "Nom";
        //maColonne.DataField = "nom";
        GridView GridView1=new GridView();
        GridView1.Columns.Add(maColonne);
        GridView1.DataSource =  SqlDataSource1;
        GridView1.DataBind();     
    }

Et dans la page .aspx il ya:

 
Et dans le web config:

    </connectionStrings>
    <system.web>
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci bien.