Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 14 sur 14
  1. #1
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut Requete SQL avec heure

    Bonsoir,

    Je souhaite faire un programme qui récupère une heure avec un DateTimePicker et qui l'ajoute dans ma base de données access. Mais le compilateur me dit
    Type de données incompatible dans l'expression du critère.
    Je me demandais donc si comme la date il y avait un format spécifique ?

    PS: Désolé si je ne suis pas dans la bonne section, je ne savais pas trop où aller.

    Merci

  2. #2
    Rédacteur/Modérateur



    Homme Profil pro Thomas Levesque
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 193
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas Levesque
    Âge : 32
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : février 2004
    Messages : 19 193
    Points : 36 635
    Points
    36 635

    Par défaut

    Il ne faut pas mettre la date directement dans la requête, il faut utiliser une requête paramétrée. Comme ça tu n'as pas à te préoccuper du format.
    http://webman.developpez.com/article...rameter/vbnet/

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Bonjour,

    Merci pour ta réponse. Je pense que j'ai utilisé ce dont tu parle. Voici ma fonction INSERT dans mon code :

    Code C# :
    1
    2
    3
    4
    5
    6
    7
    8
    public string Insert(string film_nom, string film_date_sortie, string film_reasilateur, string film_nationalite, string film_dure, int film_note_presse, int film_note_spectateur, int film_acteur1, int film_acteur2, int film_acteur3, int film_genre1, int film_genre2, bool film_dispo)
            {
                this.rq_sql = "INSERT INTO TB_FILM ([film_nom], [film_date_sortie], [film_reasilateur], [film_nationalite], [film_dure], [film_note_presse], " +
                "[film_note_spectateur], [film_acteur1], [film_acteur2], [film_acteur3], [film_genre1], [film_genre2], [film_disponible]) " +
                "VALUES ('" + film_nom + "'," + film_date_sortie + ",'" + film_reasilateur + "','" + film_nationalite + "'," + film_dure + "," + film_note_presse + "," + film_note_spectateur + "," +
                film_acteur1 + "," + film_acteur2 + "," + film_acteur3 + "," + film_genre1 + "," + film_genre2 + ",'" + film_dispo + "');";
                return this.rq_sql;
            }

  4. #4
    Rédacteur/Modérateur



    Homme Profil pro Thomas Levesque
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 193
    Détails du profil
    Informations personnelles :
    Nom : Homme Thomas Levesque
    Âge : 32
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : février 2004
    Messages : 19 193
    Points : 36 635
    Points
    36 635

    Par défaut

    Citation Envoyé par Carlito08 Voir le message
    Je pense que j'ai utilisé ce dont tu parle
    Dans ce cas je ne pense pas que tu aies lu le lien que je t'ai donné
    (en voilà un autre, en C# cette fois)

    Ce n'est pas du tout ce dont je parle, et c'est exactement le contraire de ce qu'il faut faire... Avec cette façon de faire, tu vas avoir plein de problèmes avec le format des nombres et des dates, les caractères spéciaux dans les chaines, et surtout de gros problèmes de sécurité (injection SQL)

  5. #5
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Re,

    Ok, je te remercie pour ta réponse si rapide, je vais regardé à sa et je te tiens au courant.

  6. #6
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Bonjour,

    J'ai essayé ce que tu m'as dit mais je n'y arrive pas, il ne remplace pas les paramètres donc il me dit que la requête ne contient aucun paramètre.

    Voila ce que j'ai mis après la création de la requête :

    Code :
    1
    2
    3
    OleDbCommand cmd_sql = new OleDbCommand(this.rq_sql, oData.oCNX);
    cmd_sql.Parameters.Add(new OleDbParameter("@film_nom", OleDbType.Char, 25));
    cmd_sql.Parameters["@film_nom"].Value = film_nom;
    Merci

  7. #7
    Membre Expert
    Homme Profil pro Guillaume
    Développeur .NET
    Inscrit en
    juillet 2006
    Messages
    863
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : juillet 2006
    Messages : 863
    Points : 1 263
    Points
    1 263

    Par défaut

    il faut que tu insères tes paramètre dans ta requête

    Exemple:

    Code :
    Select * from table where id=@ID
    Dans ce cas là tu as une paramètre qui est @ID
    ___________________________________________________________________________________________________________
    Si mon message t'a aidé - Si au contraire, je suis hors sujet - Quand vous avez la réponse à votre question.
    Est notre ami

  8. #8
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Re,

    Voici ma requête :
    Code :
    1
    2
    3
    "INSERT INTO [TB_FILM] ([film_nom], [film_date_sortie], [film_reasilateur], [film_nationalite], [film_dure], [film_note_presse], " +
                "[film_note_spectateur], [film_acteur1], [film_acteur2], [film_acteur3], [film_genre1], [film_genre2], [film_disponible]) " +
                "VALUES (@film_nom, @film_date_sortie, @film_reasilateur, @film_nationalite, @film_dure, @film_note_presse, @film_note_spectateur, @film_acteur1, @film_acteur2, @film_acteur3, @film_genre1, @film_genre2, @film_dispo);
    Merci

  9. #9
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    avril 2007
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : avril 2007
    Messages : 1 958
    Points : 2 886
    Points
    2 886

    Par défaut

    Voilà ta requête, certes, mais quel est le problème désormais ?

    Poste un peu plus de code : notamment la déclaration de ta SQLCommand et de ses SQLParameters.

  10. #10
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Le problème est que lorsqu'il veut exécuter la commande il me dit qu'il n'y a aucun paramètre.
    Je ne vois pas ce que tu veux dire par
    déclaration SQLCommand et de ses SQLParameters.

  11. #11
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Bonjour,

    Je pense avoir compris mon problème. De ce que j'ai vu il faut utilisé la bibliothèque SqlClient pour faire la connexion à la base de données ainsi que pour les requêtes paramétrées. Mais dans mon code, pour la connexion j'utilise la bibliothèque OleDb...

    Est ce bien cela mon problème ?

    Merci

  12. #12
    Expert Confirmé Avatar de iberserk
    Homme Profil pro Bruno IGNACE
    Architecte de base de données
    Inscrit en
    novembre 2004
    Messages
    1 607
    Détails du profil
    Informations personnelles :
    Nom : Homme Bruno IGNACE
    Âge : 32
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2004
    Messages : 1 607
    Points : 2 642
    Points
    2 642

    Par défaut

    poste ton code complet (oledbconnection,oledbcommand etc.)
    tu n'es pas loin du compte...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  13. #13
    Candidat au titre de Membre du Club
    Homme Profil pro Valentin Carl
    Etudiant à Exia
    Inscrit en
    février 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Nom : Homme Valentin Carl
    Âge : 22
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Etudiant à Exia
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2012
    Messages : 57
    Points : 11
    Points
    11

    Par défaut

    Bonjour,

    Voici ma classe Data :

    Code :
    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
    class CL_data
        {
            //-- Déclaration des objets qui permettront les connections, la récupération de données depuis la BDD... --//
            private string rq_sql; //chaine requete SQL
            private string cnx; //chaine de connection
            public System.Data.OleDb.OleDbConnection oCNX; //objet de connection
            private System.Data.OleDb.OleDbCommand oCMD; //objet de commande
            private System.Data.OleDb.OleDbDataAdapter oDA; //objet dataAdapter
            private System.Data.DataSet oDS; //objet dataset
     
     
            //-- Définition des méthodes --//
            public CL_data()
            {
                this.rq_sql = "";
                this.cnx = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Carlito\Desktop\Programme\dvdtheque\WindowsFormsApplication2\BDD_film.accdb"; //On établit la connection avec la BDD
                this.oCNX = new System.Data.OleDb.OleDbConnection(this.cnx); //l'objet de connection est construit avec en paramètre, la chaine ci-dessus.
                this.oCMD = new System.Data.OleDb.OleDbCommand();
                this.oDA = new System.Data.OleDb.OleDbDataAdapter();
     
            }
     
            //-- Setters --//
            public void m_ActionsRows(string rq_sql)
            {
                this.rq_sql = rq_sql;
                this.oCMD.Connection = this.oCNX;
                this.oCMD.CommandText = this.rq_sql;
                this.oCNX.Open();
                this.oCMD.ExecuteNonQuery();
                this.oCNX.Close();
            }
     
            //-- Getters --//
            public System.Data.DataSet m_GetRows(string rq_sql, string rows_name)
            {
                this.oDS = new System.Data.DataSet();
                this.rq_sql = rq_sql;
                this.oCMD.Connection = this.oCNX;
                this.oCMD.CommandText = this.rq_sql;
                this.oDA.SelectCommand = this.oCMD;
                this.oDA.Fill(this.oDS, rows_name);
                return this.oDS;
            }
        }
    Merci

  14. #14
    Membre expérimenté

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    novembre 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 247
    Points : 523
    Points
    523

    Par défaut

    Citation Envoyé par Carlito08 Voir le message
    Bonjour,
    //-- Getters --//
    public System.Data.DataSet m_GetRows(string rq_sql, string rows_name)
    {
    this.oDS = new System.Data.DataSet();
    this.rq_sql = rq_sql;
    this.oCMD.Connection = this.oCNX;
    this.oCMD.CommandText = this.rq_sql;
    this.oDA.SelectCommand = this.oCMD;
    this.oDA.Fill(this.oDS, rows_name);
    return this.oDS;
    }
    heu... c'est quoi rows_name ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •