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

Accès aux données Discussion :

Requête dans fichier .sql


Sujet :

Accès aux données

  1. #1
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Points : 239
    Points
    239
    Par défaut Requête dans fichier .sql
    Bonjour,

    Je travail sur l'automatisation d'une tache permettant d'extraire des données d'une base avant de les insérer dans une autre.

    Pour cela j'ai crée une requête SQL ( avec curseurs ect ..) qui fonctionne parfaitement.
    Ex une partie de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	SET @SQL = 'UPDATE glpi_users SET '
    	SET @SQL = @SQL +  ' name =''' + @Name + ''', '
    	SET @SQL = @SQL +  ' realname =''' + REPLACE(@RealName,'''','''''') + ''', '
    	SET @SQL = @SQL +  ' mobile =''' + @Mobile + ''', '
    	SET @SQL = @SQL +  ' phone =''' + @Phone + ''', '
    	SET @SQL = @SQL +  ' usertitles_Id =' + CAST(@UserTitleId as nvarchar(20))	
    	SET @SQL = @SQL +  ' WHERE  Name = ''' + @Name + '''  ;'
    	PRINT @SQL
    qui donne comme resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE glpi_users SET  name ='****',  realname ='*******',  mobile ='',  phone ='**** ',  usertitles_Id =**** WHERE  Name = '******'  ;

    Mon souhait est d’exécuter cette requête via mon application c# et d’insérer les résultats ( les requêtes générées ) dans un nouveau fichier SQL.

    Mon problème est que je n'arrive pas à exécuter cette requête SQL

    Systématiquement le SQLdataReader me renvoi 0 lignes.

    Voici mon code :

    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
       try
                {     
                SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Navision"].ConnectionString);
                conn.Open();
     
                FileInfo file = new FileInfo(@"V:\DSI\*******l");
                string query = file.OpenText().ReadToEnd();//.ReadToEnd();
     
                Console.WriteLine(query);
               // Console.ReadKey();
     
                SqlCommand cmd = new SqlCommand(query, conn);
                SqlDataReader dr = cmd.ExecuteReader();
     
     
                if (dr.HasRows)
                    while (dr.Read())
                        Console.WriteLine("\t{0}\t{1}", dr.GetString(0), dr.GetString(1));
                else
                    Console.WriteLine("No rows returned.");
                Console.ReadKey();
    Si je remplace mon fichier sql par une requête simple de type Select c'est ok , mon SQLDataReader me retourne bien des résultats.

    Pourriez vous m'aider ?
    Le SQLDATAREADER est il viable dans mon cas ?


    Cordialement

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour,

    Pour exécuter une requête d'Update ou d'Insert, vous ne devez pas passer par la méthode ExecuteReader mais par la méthode ExecuteNonQuery. En effet ExecuteReader n'est à utiliser que pour les requêtes "SELECT" (et c'est donc pour ca que vous obtenez des résultats dans votre test)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/10/2011, 09h11
  2. Comment écrire plusieurs requêtes dans Query.Sql
    Par hayat2 dans le forum Bases de données
    Réponses: 11
    Dernier message: 03/06/2009, 10h33
  3. [Débutant] Enchainer des requêtes dans pl/sql developer
    Par nighthammer dans le forum PL/SQL
    Réponses: 6
    Dernier message: 23/04/2008, 13h48
  4. Résultat d'une requête dans fichier ini
    Par bruno28 dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/06/2007, 16h29
  5. Réponses: 1
    Dernier message: 29/12/2005, 09h37

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