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 :

Exécuter une requête ADODB


Sujet :

C#

  1. #1
    Membre régulier Avatar de Tchicken
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Août 2017
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Août 2017
    Messages : 108
    Points : 85
    Points
    85
    Par défaut Exécuter une requête ADODB
    Bonjour à tous,

    je suis en train de migrer mon code VB en C# ( Super outil https://github.com/icsharpcode/CodeC...ster/README.md)
    je coïnce sur l'exécution d'une requête SQL avec ADODB : Comment dois-je faire s.v.p. ?
    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
            public static void Insertions(string MyFile)
            {
                string MyString;
    
                // demande de connexion accessmatic
                Gestion.Cn=new ADODB.Connection();
                Gestion.Cn.Open("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=ACCESSMATIC.ACCDB;Persist Security Info=True", "", "", -1);
                Gestion.Cns=new ADODB.Connection();
                Gestion.Cns.Open("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=STATSHIPPODROMES.ACCDB;Persist Security Info=True", "", "", -1);
                var monStreamReader = new StreamReader(MyFile, Encoding.Latin1);
                MyString=monStreamReader.ReadLine();
                do
                {
                    if (Conversions.ToBoolean(Strings.InStr(MyString, "DatesHippodromes")|Strings.InStr(MyString, "DatesChevaux")))
                    {
                        Gestion.Cns.Execute(MyString);
                    }
                    else
                    {
                        Gestion.Cn.Execute(MyString);
                    }
    
                    MyString=monStreamReader.ReadLine();
                }
                while (MyString is not null);
                monStreamReader.Close();
                Gestion.Cns.Close();
                Gestion.Cns=null;
                Gestion.Cn.Close();
                Gestion.Cn=null;
            }

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 457
    Points
    5 457
    Par défaut
    Un message d'erreur ?

  3. #3
    Membre régulier Avatar de Tchicken
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Août 2017
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Août 2017
    Messages : 108
    Points : 85
    Points
    85
    Par défaut
    Bonjour popo,
    Oui à la compilation :
    Gravité Code Description Projet Fichier Ligne État de la suppression
    Erreur CS1501 Aucune surcharge pour la méthode 'Execute' n'accepte les arguments 1 GenTurfEvoConsole C:\NewTurf\GenTurfEvoConsole\Modules\ChargeBDD.cs 115 Actif
    Je ne trouve pas comment exécuter une requête ADODB en C#
    En VB pas de soucis :
    Code VB : 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 Insertions(MyFile As String)
            Dim MyString As String
     
            'demande de connexion accessmatic
            Gestion.Cn = New ADODB.Connection
            Gestion.Cns = New ADODB.Connection
            Gestion.Cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=ACCESSMATIC.ACCDB;Persist Security Info=True"
            Gestion.Cns.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=STATSHIPPODROMES.ACCDB;Persist Security Info=True"
            Gestion.Cn.Open()
            Gestion.Cns.Open()
     
            Dim monStreamReader As New StreamReader(MyFile, Encoding.Latin1)
            MyString = monStreamReader.ReadLine()
            Do
                If InStr(MyString, "DatesHippodromes") Or InStr(MyString, "DatesChevaux") Then
                    Gestion.Cns.Execute(MyString)
                Else
                    Gestion.Cn.Execute(MyString)
                End If
                MyString = monStreamReader.ReadLine()
            Loop Until MyString Is Nothing
     
            monStreamReader.Close()
     
            Gestion.Cns.Close()
            Gestion.Cns = Nothing
            Gestion.Cn.Close()
            Gestion.Cn = Nothing
     
        End Sub

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 752
    Points : 5 457
    Points
    5 457
    Par défaut
    Ton message d'erreur est tronqué

  5. #5
    Membre régulier Avatar de Tchicken
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Août 2017
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique

    Informations forums :
    Inscription : Août 2017
    Messages : 108
    Points : 85
    Points
    85
    Par défaut
    J'ai trouvé une solution en changeant ADODB en OleDB :
    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
            public static void Insertions(string MyFile)
            {
                string MyString;
     
                // demande de connexion accessmatic
                OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=ACCESSMATIC.ACCDB");
                OleDbConnection cns = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=STATSHIPPODROMES.ACCDB");
                var monStreamReader = new StreamReader(MyFile, Encoding.Latin1);
                MyString=monStreamReader.ReadLine();
                do
                {
                    if (Conversions.ToBoolean(Strings.InStr(MyString, "DatesHippodromes")|Strings.InStr(MyString, "DatesChevaux")))
                    {
                        try
                        {
                            OleDbCommand cmd = new OleDbCommand(MyString, cns);
                            cns.Open();
                            cmd.ExecuteNonQuery();
                        }
                        catch (
                        SqlException se)
                        {
                            Console.WriteLine(se.Message);
                        }
     
                        finally { cns.Close(); }
                    }
                    else
                    {
                        try
                        {
                            OleDbCommand cmd = new OleDbCommand(MyString, cn);
                            cn.Open();
                            cmd.ExecuteNonQuery();
                        }
                        catch (
                        SqlException se)
                        {
                            Console.WriteLine(se.Message);
                        }
     
                        finally { cn.Close(); }
                    }
                    MyString=monStreamReader.ReadLine();
                }
                while (MyString is not null);
                monStreamReader.Close();
                Gestion.Cns.Close();
                Gestion.Cns=null;
                Gestion.Cn.Close();
                Gestion.Cn=null;
            }

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

Discussions similaires

  1. Exécuter une requête non-query
    Par Piet dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 07/02/2007, 15h01
  2. Comment exécuter une requête en VBA ?
    Par rob2-9 dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 01/08/2006, 12h00
  3. Exécuter une requête à partir d'une variable
    Par Poussy-Puce dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/03/2006, 14h15
  4. [ADO.Net][C#/Mysql] Comment exécuter une requête paramétrée?
    Par wremacle dans le forum Accès aux données
    Réponses: 6
    Dernier message: 07/02/2006, 16h55
  5. Comment exécuter une requête rapidement
    Par kardevlop dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 13h45

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