1. #1
    Membre habitué
    Inscrit en
    avril 2009
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 96
    Points : 128
    Points
    128

    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
    934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : avril 2006
    Messages : 934
    Points : 3 286
    Points
    3 286

    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