Requete SQL ; probleme avec conn.Open();

Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009 - 22 févr. 2009 à 18:07
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009 - 22 févr. 2009 à 23:04
J'essaye de mettre en place ce code pour generer les données que j'afficherai dans un GridView4.
Il est situé dans la page.cs et appeler dans public load.

       private void ConvertDateReadertoTableUsingLoad()
        {
            SqlConnection conn = null;
            try
            {
                string connString = ConfigurationManager.ConnectionStrings["B2ConnectionStrings"].ConnectionString;
                conn = new SqlConnection(connString);                string query "Select A.Part,A.TR from ar24.Source A Where A.TR'D5'";
                SqlCommand cmd = new SqlCommand(query, conn);
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                DataTable dt = new DataTable();
                dt.Load(dr);
                GridView4.DataSource = dt;
                GridView4.DataBind();
            }
            catch (SqlException ex)
            {
                // handle error
            }
            catch (Exception ex)
            {
                // handle error
            }
            finally
            {
                conn.Close();
            }

Ce code rentre en erreur sur conn.Open();
Pour autant je suis certain de ma chaine de connexion car elle fonctionne en mode graphique lorsque j'ajoute des table adtapter.
Je suis aussi certain qu'il retrouve les parametre de connexions.

Auriez-vous une idée.

Merci ?

20 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
22 févr. 2009 à 18:58
Bonjour
si c'est sur l'open que ça plante, c'est sans doute la chaine de connexion.

Peux tu afficher la chaine de connexion et nous donner l'exception exacte ?

C# is amazing, enjoy it!
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 20:49
Merci pour ton aide.

Je suis certaine que ca ne provient pas de la chaine de connexion car je l'utilise pour créer des table adapter en mode graphique et ca fonctionne. 

L'exception est : SqlException 
                                 - System.Data.SqlClient.SqlException
                                 - base {System.Data.Common.DbException} | System.Data.Common.DbException
                                 - base {System.Runtime.InteropServices.ExternalException}|...
                                 - base {System.SystemException} |...
                                 - base {System.Exception} |...
                                 - base {object} Non Public Members
                                 - _ComPlusExceptionCode

Merci
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
22 févr. 2009 à 21:16
Il n'y a pas de message dans ton exception ???

Je ne pense pas que ca change quelque chose, mais a tout hasard essaye de mettre conn.Open avant de creer la commande.
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 21:30
Aucun changement.

Ou est ce que je lis le message de l'exception ; j'ai fais un add watch mais je ne vois rien
à part l'arborescence que j'ai rajouté.
Je deviens fou !!!
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 21:35
hum question bete mais es-tu sur que ta chaine de connexion est bonne? (non non ne t'emporte ^pas, je sais bien que tu as dit que tu utilisais la mm que celle utilisée en passant par l'interface graphique de vs)

Mais si VS te genere une chaine de connexion de type oledb par exemple et que utilise un SqlConnection ca risque de planter. (j'ai jamais essayé a vrai dire mais bon) Donc verifie bien que ta connection string est bien de type sqlconnection et non oledb.

D'autre part dans ton finally tu devrais ptet rajouter une condition pour verifier que la connection est bien ouverte avant de la fermer, on ne sait jamais ^^
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
22 févr. 2009 à 21:38
catch(SqlException ex)
{
 //ex.ToString() doit te donner le message
}
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 21:39
Pas faux, voir même très juste.
Voila ci-dessous ma chaine de connexion :

<connectionStrings>

</connectionStrings>
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 21:44
Ok j'ai le message :

An error has occured while establishing a connection to the server.
When connecting to sql Server 2005, this failure may be caused by the fact that under the default settings SQL server does not allow remote connection (provifr: SQL network Interfaces, error 25 - Connection string is not valid

Merci
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 21:51
essaye ca comme chaine:

"Data Source=;Initial Catalog=<TaBaseDeDonnees>;User Id=<tonUserName>;Password=<TonPassword>;"

car la chaine que tu utilises est utilisé pour un sqldatasource et non pour une connection "normale"
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 22:04
     J'ai essayé 
           string connString = "Data Source=;Initial Catalog=<TaBaseDeDonnees>;User Id=<tonUserName>;Password=<TonPassword>;"

et c'est le meme problème.

MErci
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 22:18
humm est-ce que par hasard tu utiliserai sql server 2005 express edition? dans ce cas il faut preciser le nom de l'instance et ta DataSource serait NomDeTonServer\SQLExpress ou plus simplement .\SQLExpress (sauf si tu as changé le nom de l'instance lors de l'installation)
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 22:24
Je suis pas au top sur cette techno.
Je comprends pas ce que je dois faire.
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 22:31
Essaye simplement string connString="Data Source=.\SQLExpress;Initial Catalog=MyBdd;User Id=jack;Password=azerty;"

en rempalcant bien sur MyBdd par le nom de ta base de données, jack par le nom de ton utilisateur sql et azerty par le mot de passe de cet utilisateur.

si cela ne marche toujours essaye avec une trusted connection comme ceci:

string connString="Server=.\SQLExpress;Database=Mydd;Trusted_Connection=True;"

je rappelle que ceci s'applique si tu as une version express de sql server, sinon il faut bien rempalcer le .\SQLExpress par le nom de ton server
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 22:34
Je vais essayer
Ce que je comprends pas c'est que mon server est sous IBM. Quel est le rapport avec sql server 2005 ?
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 22:42
uh? je ne suis pas sur de comprendre la. Tu peux me dire quelle base de données tu utilises?
je pensais que c'etait un sql server etant donné que tu utilisais une SQLConnection.
Utiliserais-tu une base de donnée IBM DB2?
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 22:50
Oui j'utilise une bdd DB2
0
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
22 févr. 2009 à 23:00
Utilise DB2Connection alors, pas SqlConnection. SqlConnection est pour se connecter a une DB SQL
Pareil pour tes commandes. Tiens, il y a un toto ici
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 23:01
ahh d'accord alors c'ets normal que ca plantait car ni la chaine de connection ni le type de connection n'etait bon lol.
bon pour la chaine ca devrait etre un truc comme ceci:

Provider=IBMDADB2;Database=myDataBase;Hostname=myServerAddress;Protocol=TCPIP; Port=50000;Uid=myUsername;Pwd=myPassword; (dixit connectionstrings.com)

remplace bien sur les nom de bdd, server, username et password par ceux de ta config. Et surtout n'utilise plus sqlconnection, sqlcommand, sqldatareader... mais oledbconnection...

Tu peux aussi utliser d'autre provider (ibm) mais dans un premier temps le oledb devrait très bien aller.
Si ca ne marche pas, regarde connectionstrings.com.
0
RougailSaucisse Messages postés 118 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 6 décembre 2010 1
22 févr. 2009 à 23:03
bon bah voila, le tuto de wishhhmaster semble bien et te permettra d'utiliser db2connection plutot que le "generique" oledb de crosoft.
bonne chance!
0
Alex038 Messages postés 10 Date d'inscription jeudi 10 février 2005 Statut Membre Dernière intervention 23 février 2009
22 févr. 2009 à 23:04
Super sympa pour ton aide.
J'essaye de mettre tout ca en oeuvre.
Merci beaucoup.
0