Précédent   Forum du club des développeurs et IT Pro > Dotnet > Accès aux données
Accès aux données Forum d'entraide sur les technologies d'accès aux données de Microsoft (ADO.NET, Linq, Entity Framework, etc.).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 31/05/2012, 22h45   #1
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Citation:
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2012, 00h02   #2
tomlev
Rédacteur/Modérateur


 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 17 793
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 31
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 : 17 793
Points : 34 070
Points : 34 070
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/
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Extraction de données de pages web à l'aide de HTML Agility Pack
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !
tomlev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2012, 09h39   #3
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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;
        }
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2012, 10h11   #4
tomlev
Rédacteur/Modérateur


 
Avatar de tomlev
 
Homme Thomas Levesque
Développeur .NET
Inscription : février 2004
Messages : 17 793
Détails du profil
Informations personnelles :
Nom : Homme Thomas Levesque
Âge : 31
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 : 17 793
Points : 34 070
Points : 34 070
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)
__________________

Pas de questions techniques par MP ! Le forum est là pour ça...

Tutoriels : Les markup extensions en WPF - La sérialisation XML avec .NET (Aller plus loin) - Extraction de données de pages web à l'aide de HTML Agility Pack
Projet : Dvp.NET, la librairie .NET open-source des membres de Developpez !
tomlev est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/06/2012, 10h20   #5
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
Re,

Ok, je te remercie pour ta réponse si rapide, je vais regardé à sa et je te tiens au courant.
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2012, 09h02   #6
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2012, 09h06   #7
gcorbineau
Membre Expert
 
Homme Guillaume
Développeur .NET
Inscription : juillet 2006
Messages : 853
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 : 853
Points : 1 295
Points : 1 295
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
gcorbineau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2012, 09h10   #8
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2012, 10h03   #9
calagan99
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 891
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Ille et Vilaine (Bretagne)

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

Informations forums :
Inscription : avril 2007
Messages : 1 891
Points : 3 056
Points : 3 056
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.
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2012, 10h08   #10
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Citation:
déclaration SQLCommand et de ses SQLParameters.
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2012, 11h01   #11
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2012, 23h32   #12
iberserk
Expert Confirmé
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 514
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 31
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 514
Points : 2 756
Points : 2 756
Envoyer un message via MSN à iberserk
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
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 14h53   #13
Carlito08
Candidat au titre de Membre du Club
 
Homme Valentin Carl
Etudiant à Exia
Inscription : février 2012
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Valentin Carl
Âge : 20
Localisation : France, Ardennes (Champagne Ardenne)

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

Informations forums :
Inscription : février 2012
Messages : 56
Points : 13
Points : 13
Envoyer un message via Skype™ à Carlito08
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
Carlito08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 23h30   #14
plume13
Membre confirmé
 
Femme
Ingénieur développement logiciels
Inscription : novembre 2011
Messages : 113
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 35
Localisation : France, Var (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 : 113
Points : 232
Points : 232
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 ?
plume13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h29.


 
 
 
 
Partenaires

Hébergement Web