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 :

Mettre une variable comme nom de table (BDD)


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 4
    Points
    4
    Par défaut Mettre une variable comme nom de table (BDD)
    Bonjour, je fais un programme en C# pour mon projet d'ISN, il s'agit d'un gestionnaire de finances personnelles. J'utilise pour cela une base de données SQLITE.
    J'ai réussi à inserer des variables dans une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                string sql = "insert into comptes (name,numero,banque,solde,devise) values (@nomcmt,@numero,@banque,@solde,@devise)";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                command.Parameters.AddWithValue("@nomcmt", nom);
                command.Parameters.AddWithValue("@numero", numero);
                command.Parameters.AddWithValue("@banque", banque);
                command.Parameters.AddWithValue("@solde", solde);
                command.Parameters.AddWithValue("@devise", devise);
                command.ExecuteNonQuery();
    En revanche je n'arrive pas à mettre une variable comme nom de table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                string sql = "create table @nomcmt (label varchar(20), categorie varchar(20), montant decimal)";
                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                command.Parameters.AddWithValue("@nomcmt", nom);
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ce que tu cherches à faire n'est pas possible. En arrière plan, lorsque la commande SQL est traitée, si la valeur d'un paramètre est un string, cette valeur sera automatiquement encadrée par des apostrophes. Donc ton DDL SQL obtenu serait de ce genre :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    create table 'nom_table' (label varchar(20), categorie varchar(20), montant decimal)
    Ce n'est pas du SQL valide...

    Donc il faut se résoudre soit à concaténer, ce qui n'est clairement pas une bonne idée, puisque cela ouvre la porte à de potentielles injections de code SQL ; soit il faut prévoir plusieurs requêtes SQL (une par table, avec un switch pour choisir la bonne) ; soit, encore mieux, utiliser une procédure stockée, à qui tu passeras le nom de la table à créer en paramètre.

    Je te conseille la dernière solution (procédure stockée).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  2. Réponses: 2
    Dernier message: 12/04/2011, 09h21
  3. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  4. donner la valeur d'une variable comme nom de table
    Par cladsam dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/10/2005, 15h16
  5. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12

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