Decimal, float, double... en C# avec SQL Server [Résolu]

0nn2belle 16 Messages postés vendredi 28 novembre 2008Date d'inscription 28 juin 2011 Dernière intervention - 3 mai 2010 à 22:01 - Dernière réponse : 0nn2belle 16 Messages postés vendredi 28 novembre 2008Date d'inscription 28 juin 2011 Dernière intervention
- 4 mai 2010 à 09:36
Bonsoir tout le monde,
Je suis débutante en c# et je suis confrontée à un problème que j'ai déjà rencontré, mais... en JAVA ! Et je suis perdue dans mon cas présent.

Voilà, je dois insérer quasiment "à la main" toutes les valeurs d'une tables, les enregistrements...

En bref, j'ai une table "réception", qui contient :
- un id_reception
- un id_employe
- un id_societe
- un tonnage
- un taux_sucre
- un pH
- une date_reception

J'ai crée ma méthode :
        public void InsertReception(int id_employe, int id_societe, int id_livreur, decimal tonnage, int taux_sucre, int pH, DateTime date_reception)
        {
            reception nouvreception new reception { id_emp id_employe, id_societe = id_societe, id_livreur = id_livreur, tonnage = tonnage, taux_sucre = taux_sucre, ph = pH, date_reception = date_reception };
            mabdd.reception.InsertOnSubmit(nouvreception);
            mabdd.SubmitChanges();
        }


Avec
DataClasses1DataContext mabdd;
au préalable

Dans mon main je veux faire :
            Rq_sql obj = new Rq_sql();
            obj.InsertReception(1, 2, 2, 1.2, 85, 4, DateTime.Now);


Et donc mon souci c'est ce fameux "1.2", bien sûr j'ai déjà essayé avec des virgules, entre côtes, entre double côte, enfin bref la totale.
En Java j'avais fait une requête paramétrée, mais ici je ne fais pas de requête sql donc je ne sais pas comment faire !

Au départ j'étais en type "int", puis en "float" et enfin ici en "decimal". Mais je ne trouve rien, une idée ??

Merci d'avance pour vos réponses,
Annabelle
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
0nn2belle 16 Messages postés vendredi 28 novembre 2008Date d'inscription 28 juin 2011 Dernière intervention - 4 mai 2010 à 09:36
3
Merci
Re, c'est bon, en fait le souci venait du fait que je devais refaire mon LinQ (même si j'ai actualisé la bdd).

Je poste quand même la solution trouvée :

Ma méthode InsertReception avec au préalable
float tonnage

        public void InsertReception(int id_employe, int id_societe, int id_livreur, float tonnage, int taux_sucre, int pH, DateTime date_reception)
        {
            reception nouvreception new reception { id_emp id_employe, id_societe = id_societe, id_livreur = id_livreur, tonnage = tonnage, taux_sucre = taux_sucre, ph = pH, date_reception = date_reception };
            mabdd.reception.InsertOnSubmit(nouvreception);
            mabdd.SubmitChanges();
        }



Et ensuite mon appel de méthode dans mon main :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq.Mapping;

namespace Test_ecriture_bdd
{
    class Program
    {
        static void Main(string[] args)
        {

            //for (int i = 1; i <= 100; i++)

            Rq_sql obj = new Rq_sql();
            obj.InsertReception(1, 2, 2, (float)1.5, 85, 4, DateTime.Now);
            /*obj.InsertReception(1, 3, 3, 1, 90, 4, DateTime.Now);
            obj.InsertReception(1, 4, 4, 1, 95, 4, DateTime.Now);
            obj.InsertReception(1, 5, 5, 1, 97, 4, DateTime.Now);*/

        }
    }
}


Voilà, bonne journée à tous !

Merci 0nn2belle 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de 0nn2belle
cs_GG29 327 Messages postés vendredi 23 décembre 2005Date d'inscription 8 février 2011 Dernière intervention - 3 mai 2010 à 22:50
0
Merci
Ton problème vient surement du fait que 1.2 est un double. Pour forcer le type
float : 1.2f ou (float)1.2
double : 1.2d ou (double)1.2
decimal : 1.2m ou (decimal)1.2

---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
Commenter la réponse de cs_GG29
0nn2belle 16 Messages postés vendredi 28 novembre 2008Date d'inscription 28 juin 2011 Dernière intervention - 4 mai 2010 à 09:18
0
Merci
Bonjour, merci pour ta réponse, j'ai essayé, mais j'ai encore une erreur :
"Impossible de convertir implicitement le type 'float'en 'int?'. Une conversion explicite existe (un cast est-il manquant ?)"

Cela se passe quand je met mon attribut en float, dans ma méthode puis lorsque j'appelle ma méthode dans le main.
Quand je change float en int (même en gardant (int)1.2) ça fonctionne mais je n'ai pas de chiffre à virgule dans ma bdd
Commenter la réponse de 0nn2belle

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.