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

C# Discussion :

Connection a base access qui ne marche pas


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Par défaut Connection a base access qui ne marche pas
    Bonjour,

    j'ai un problème avec mon code, je n'arrive pas à me connecter à ma base de données Access pour pouvoir aller chercher la similarité avec les données recceuillis dans un formulaire.

    J'ai déjà testé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DbConnection connection =new  DbConnection(connectionString);
    connection.Open();
    Je vous laisse mon code bien sur:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     /// <summary>
        /// Recherche multi-critère dans la BDD Access en fonction des valeurs du formulaire
        /// </summary>
    	private void Search(ScriptsInterface c2d)
    	{
            //SpiLog.LogMessage(SpiMessages.InfoScript, "DEBUT Search()" , "Script_externe C#", "SpiScript.Main()"); //AVIRER
    		DataControl lw = c2d.GetDataControl("LW_Result");
    		lw.DeleteRows(); //RAZ
     
    		//Acquisition des critères de recherche à partir des champs du formullaire
    		String sNom = c2d.ControlGetValue("Nom" );
    		String sPrenom = c2d.ControlGetValue("PRENOM" );
    		String sNumSS = c2d.ControlGetValue("NUMSS" );
    		String sMatricule = c2d.ControlGetValue("Matricule" );
    		//String sCivilite = c2d.ControlGetValue("CIVILITE" );
    MessageBox.Show("Here Search Acquisition");
     
            //SpiLog.LogMessage(SpiMessages.InfoScript, "Search() Nom"+sNom+", Prenom="+sPrenom+", NumSS="+sNumSS+", Matricule="+sMatricule+", "Script_externe C#", "SpiScript.Main()"); //AVIRER
     
    		//Recherche dans la Feuille ACCESS
    		string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +PATH_EXCEL_DATABASE;
    		DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
    		int iNbr = 0;
    		using (DbConnection connection = factory.CreateConnection())
    		{
    			connection.connectionString = connectionString;
    			using (DbCommand command = connection.CreateCommand())
    			{
    				command.CommandText = "SELECT Numero_SS, Matricule, Civilite, Nom_marital, Prenom, Nom_patronymique FROM [BG-SG-COMPLET-Avec matricule$]";
    				MessageBox.Show("Here Search Selection");
    				string sWhere = "";
    				if( !String.IsNullOrEmpty(sNom) )
    				{
    					if( !String.IsNullOrEmpty(sWhere) ) sWhere += " AND ";
                        			sWhere += " ( [BG-SG-COMPLET-Avec matricule$].Nom_patronymique = '" + sNom + "' OR [BG-SG-COMPLET-Avec matricule$].Nom_marital = '" + sNom + "' )";
    				MessageBox.Show("Here sWhereNom"+sWhere);
    				}
    				if( !String.IsNullOrEmpty(sPrenom) )
    				{
    					if( !String.IsNullOrEmpty(sWhere) ) sWhere += " AND ";
    					sWhere += " [BG-SG-COMPLET-Avec matricule$].Prenom LIKE '%"+sPrenom+"%' ";
    				MessageBox.Show("Here sWherePre"+sWhere);
    				}
    				if( !String.IsNullOrEmpty(sNumSS) )
    				{
    					if( !String.IsNullOrEmpty(sWhere) ) sWhere += " AND ";
    					sWhere += " [BG-SG-COMPLET-Avec matricule$].Numero_SS LIKE '"+sNumSS+"%' ";
    				MessageBox.Show("Here sWhereNum"+sWhere);
    				}
    				if( !String.IsNullOrEmpty(sMatricule) )
    				{
    					if( !String.IsNullOrEmpty(sWhere) ) sWhere += " AND ";
    					sWhere += " [BG-SG-COMPLET-Avec matricule$].Matricule LIKE '%"+sMatricule+"' ";
    				MessageBox.Show("Here sWhereMat"+sWhere);
    				}
    				//ExecuteSQLFetch{Xls}(" SELECT * From [Feuil1$]  WHERE [Feuil1$].NOM LIKE '%DUPONT%' ")
    				if( !String.IsNullOrEmpty(sWhere) )
    					command.CommandText += " WHERE " + sWhere ;
     
    				c2d.ShowInfoMessage(String.Format("REQUETE" + sNom + ","+ sPrenom + ","+ sNumSS + ","+ sMatricule));
     
     
    				connection.Open();
     
    				MessageBox.Show("Here Search Connection");
    				using (DbDataReader dr = command.ExecuteReader())
    				{
    					while (dr.Read())
    					{	//Ajoute les éléments trouvés dans la ListView
    						string[] arRows = { dr["Civilite"].ToString(), dr["Nom_patronymique"].ToString(), dr["Prenom"].ToString(), FormatNumSS( dr["Numero_SS"].ToString() ), dr["Matricule"].ToString() } ;
    						lw.AddRow( dr["Matricule"].ToString(), arRows );
    						iNbr++;
    						MessageBox.Show("Here Search Ajout");
    					}
    				}
    			}
    		}
    		if( iNbr < 1 )
    		{	//Rien trouvé
    			SpiMisc.PlaySound(@"C:\windows\media\Ding.wav");
    		}
    	}//Search()
    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Par défaut
    tu as un message d'erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Par défaut
    Malheureusement je ne peux pas faire de Débuggage comme je dépend d'un logiciel, je fais ca avec mon petit cerveau (loin d'être égal à un ordinateur )

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sans le message d'erreur, je ne suis pas sur que quelqu'un puisse t'aider
    et si tu ne peux pas voir le message d'erreur c'est que tu y mets de la mauvaise volonté (try catch)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Par défaut
    Donc premierement je n'ai mis qu'une partie du code, donc je vais te donner le main pour te montrer mon try and catch

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    const string PATH_EXCEL_DATABASE = @"C:\Users\OPERPC123\Desktop\test.udl";
    	
    	public int Main(ScriptsInterface c2d) 
    	{
    		try{
    //SpiLog.LogMessage(SpiMessages.InfoScript, "DEBUT OnClick("+c2d.FieldName+")" , "Script_externe C#", "SpiScript.Main()"); //AVIRER
    		MessageBox.Show("Here Main 1");
    			DataControl dc = null;
    			switch( c2d.FieldName )
    			{
    				case "PB_Search" :
    					Search(c2d) ;
    					break;
    				case "LW_Result" :
    					OnSelect(c2d);
    					break;
                    case "PB_MODIF_DATE_BULLETIN":
    					//Permettre le changement de la date  : débloquer le Controle
                        c2d.ControlSetReadOnly("DATE_BULLETIN", false);
    					//blocage du PB
                        dc = c2d.GetDataControl("PB_MODIF_DATE_BULLETIN");
    					dc.ControlWinForms.Enabled = false;
    					break;
                    case "PB_MODIF_MOIS" :
                        //Permettre le changement de la date  : débloquer le Controle
                       c2d.ControlSetReadOnly("MOIS", false);
                        //blocage du PB
                       dc = c2d.GetDataControl("PB_MODIF_MOIS");
                        dc.ControlWinForms.Enabled = false;
                        break;
                    case "PB_AJOUT_BDD" :
                        InsertInDataBase(c2d);
                        break;
    
    MessageBox.Show("Here Main 2");
    			}//switch()
    					
    			return 0; //OK
    		}
    		catch(Exception ex)
    		{
    			System.Diagnostics.EventLog.WriteEntry( "CLICK2DATA", "Script OnClick - Exception : "+ex.Message, System.Diagnostics.EventLogEntryType.Error);
    			return -1;
    MessageBox.Show("Here Main Exception");
    		}
    	}//Main()

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Par défaut
    donc a priori ca écrit le message d'erreur dans le journal des évènements.
    Il faudrait ce message

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. code importation excel=>Access qui ne marche pas
    Par marcuscircus dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/06/2008, 11h34
  2. connect() qui ne marche pas
    Par Nykoo dans le forum Qt
    Réponses: 3
    Dernier message: 25/01/2008, 23h11
  3. [access 2007] un bouton de commande qui ne marche pas
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/01/2008, 10h33
  4. Base de données d'exemple qui ne marche pas
    Par kedare dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 29/11/2007, 04h21
  5. Réponses: 1
    Dernier message: 10/02/2007, 02h09

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