IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAP Crystal Reports Discussion :

[CR][ASP.Net]Connection base de données / web.config


Sujet :

SAP Crystal Reports

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut [CR][ASP.Net]Connection base de données / web.config
    Bonjour,
    J'ai un petit soucis au niveau de la connection d'un etat.
    Pour l'instant, je fais une connection direct à une base de données pour accéder à une table, méthode qui marche trés bien sauf au moment où, on change de serveur (donc changement de nom, donc changement de la chaîne de connection, donc marche plus...)

    J'aimerais donc pouvoir faire une connection direct à une base de données (SQL Server), en utilisant une chaîne de connection qui se trouve dans le fichier web.config du site. Et c'est là que je bloque :/

    Si qq'un sait comment faire... D'avance merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Il faut passer par progammation ta nouvelle connexion au rappport en manipulant un obejt ReportDocument.
    Un exemple en VB.NET (tester pour une connexion Oracle):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
                Public Shared Sub ConnectReport(ByVal crd As ReportDocument)
                ' /!\ fonction recursive
                Dim li As TableLogOnInfo
                Dim ci As ConnectionInfo
                Dim subReport As ReportDocument
                Dim rptObject As ReportObject
                Dim subRptObject As SubreportObject
                Dim tbl As Table
     
                ci = New ConnectionInfo
                ci.ServerName = ConfigurationSettings.AppSettings("DbSource")
                ci.DatabaseName = ""
                ci.UserID = ConfigurationSettings.AppSettings("DbUser")
                ci.Password = Decrypte(ConfigurationSettings.AppSettings("DbPassword"))
     
     
                For Each tbl In crd.Database.Tables
                    li = tbl.LogOnInfo
                    li.ConnectionInfo = ci
                    tbl.ApplyLogOnInfo(li)
                Next
     
                For Each rptObject In crd.ReportDefinition.ReportObjects
                    If rptObject.Kind = ReportObjectKind.SubreportObject Then
                        subRptObject = CType(rptObject, SubreportObject)
                        subReport = crd.OpenSubreport(subRptObject.SubreportName)
                        ConnectReport(subReport)
                    End If
                Next
    ci.DatabaseName est à renseigné pour une connexion SQL server.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup

    Juste un autre petit problème, vraiment bisard
    Voici mon code, pour mettre à jour les connexions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    	foreach(CrystalDecisions.CrystalReports.Engine.Table tbl in subReport.Database.Tables)
    	{
    		// Extraire l'objet TableLogonInfo.
    		newTabLogOnInfo = tbl.LogOnInfo;
     
    		// Définir le serveur ou le nom de la source de données ODBC, le nom de la base de données,
    		// l'ID utilisateur et le mot de passe.
    		newTabLogOnInfo.ConnectionInfo.ServerName = server;
    		newTabLogOnInfo.ConnectionInfo.DatabaseName = database;
    		newTabLogOnInfo.ConnectionInfo.UserID = userID;
    		newTabLogOnInfo.ConnectionInfo.Password = password;
     
    		// Appliquer les informations de connexion à la table.
    		tbl.ApplyLogOnInfo(newTabLogOnInfo);
     
    		// Test de la connectivité de la table
    		connexionOK &= tbl.TestConnectivity();
    	}
    Ca marche bien sauf pour le mot de passe où il ne le mets pas à jour dans la "DataBases.Table". J'ai beau testé dans tous les sens (cast/pas cast, chaîne en dur/variable, bug/debug ...), il ne le jamais à jour
    Pourtant tous les autres champs sont mis à jour... bizaaard...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Bizarre, ça fonctionne ou pas?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Ben ça marche presque

    Ca me mets le nom du server à jour ainsi que le dataBasename et le userId. Par contre, le mot de passe il me le mets pas à jour (alors qu'il le récupère bien dans le web.config). Donc forcement, avec un mot de passe qui est pas adapté, ça plantouille au niveau de la connection.

    7h que je suis sur ce problème ça commence un poil à m'énerver

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Tu n'a pas instencié de ConnectionInfo, tu utilises celle déjà affectée c'est peut-être pour çà.
    Essaye un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     foreach(CrystalDecisions.CrystalReports.Engine.Table tbl in subReport.Database.Tables)
       {
          // Extraire l'objet TableLogonInfo.
          newTabLogOnInfo = tbl.LogOnInfo;
     
          // Définir le serveur ou le nom de la source de données ODBC, le nom de la base de données,
          // l'ID utilisateur et le mot de passe.
          ConnectionInfo ci = new ConnectionInfo();
     
          ci.ConnectionInfo.ServerName = server;
          ci.ConnectionInfo.DatabaseName = database;
          ci.ConnectionInfo.UserID = userID;
          ci.ConnectionInfo.Password = password;
     
          newTabLogOnInfo.ConnectionInfo  = ci;
     
          // Appliquer les informations de connexion à la table.
          tbl.ApplyLogOnInfo(newTabLogOnInfo);
     
          // Test de la connectivité de la table
          connexionOK &= tbl.TestConnectivity();
       }

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    :'( Nan, après test, ça ne change rien !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    je seche completement là!

Discussions similaires

  1. liaison formulaire asp.net avec base de données
    Par 09182416 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 19/03/2015, 00h15
  2. Réponses: 10
    Dernier message: 26/01/2012, 18h51
  3. Authentification asp.net avec base de donnée
    Par hugo7 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 29/06/2009, 00h07
  4. [ASP.NET] - Modifier l'emplacement du Web.config
    Par nono27200 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 15/10/2008, 10h55
  5. comparer les donnes d'un controle ASP.net au base de donne
    Par princesse_sahara dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/05/2008, 02h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo