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 :

Problème Insertion BDD SQL Server


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut Problème Insertion BDD SQL Server
    Bonjour,

    Je développe actuellement un webservice, je souhaiterai récupérer les informations de plusieurs tables que je regrouperai dans une seule.
    Beaucoup d'insertion se passent très bien (135 sur 150 environ) et pour le reste j'ai cette erreur :
    Un objet qui autorise la valeur Null doit posséder une valeur.
    Comment dois-je procéder pour la résoudre ?

    Voici différentes méthodes qui pourraient être utilisées pour résoudre mon problème :

    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
            public void updateQuery(string query)
            {
                try
                {
                    if (maConnection == null || maConnection.State != ConnectionState.Open)
                    {
                        this.Connect();
                    }
                    // Objet Command
                    SqlCommand command = new SqlCommand(query, maConnection);
                    // Execution
                    command.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                //fermeture connexion
                this.Disconnect();
            }
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
            public string insertAgd(string rqtexcde, DateTime rqtsollimdte, bool wrktyppnt, int origcpyaddrincde, string origcpylocdsc, int ctcincde, int agdincde, int agdelapsedel, DateTime agdfromdte, DateTime agdtodte, DateTime agddonedte, string wrkdsc, int wrkstsincde, bool pdasendpnt, string typexcde)
            {
     
                return "INSERT INTO [SOMTEST].[dbo].[w_agdpec] " +
                "([RqtExCde] "+
                ",[RqtSolLimDte] "+
               ",[WrkTypPnt] "+
               ",[OrigCpyAddrIncde] "+
               ",[OrigCpyLocDsc] "+
               ",[CtcInCde] "+
               ",[AgdInCde] "+
               ",[AgdElapseDel] "+
               ",[AgdFromDte] "+
               ",[AgdToDte] "+
               ",[AgdDoneDte] "+
               ",[WrkDsc] "+
               ",[WrkStsInCde] "+
               ",[PDASendPnt] "+
               ",[TypExCde] "+
               ",[RqtPecInCde] "+
               ",[RqtPecFromDte] "+
               ",[RqtPecToDte] "+
               ",[WrkExCde] "+
               ",[RqtNatExCde]) "+
         "VALUES " +
               "('" + rqtexcde + "' " +
               ",'" + rqtsollimdte + "' " +
               "," + convertToBool(wrktyppnt) + " " +
               "," + origcpyaddrincde + " " +
               ",'" + origcpylocdsc + "' " +
               "," + ctcincde + " " +
               "," + agdincde + " " +
               "," + agdelapsedel + " " +
               ",'" + agdfromdte + "' " +
               ",'" + agdtodte + "' " +
               ",'" + agddonedte + "' "+
               ",'" + wrkdsc + "' "+
               "," + wrkstsincde + " "+
               "," + convertToBool(pdasendpnt) + " " +
               ",'"+typexcde+"' " +
               ",NULL" +
               ",NULL " +
               ",NULL " +
               ",NULL " +
               ",NULL)";
            }
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public List<AGD> ListAGD(string d, int ctcincde)
            {
                Console.WriteLine("Contact : " + ctcincde.ToString());
                DataSet monDataSet = som.getQuery(r.getListeAGD(d, ctcincde));
                List<AGD> maliste = new List<AGD>();
     
                try
                {
                    foreach (DataRow dr in monDataSet.Tables[0].Rows)
                    {
                        AGD row = new AGD();
     
                        row.WrkTypPnt = (bool)dr["WrkTypPnt"];
                        row.OrigCpyAddrIncde = (int)dr["OrigCpyAddrIncde"];
                        row.WrkDsc = dr["WrkDsc"].ToString();
                        row.OrigCpyLocDsc = dr["OrigCpyLocDsc"].ToString();
                        row.AgdElapseDel = (int)dr["AgdElapseDel"];
                        row.AgdFromDte = (DateTime)dr["AgdFromDte"];
                        row.AgdToDte = (DateTime)dr["AgdToDte"];
                        row.PDASendPnt1 = (bool)dr["PDASendPnt"];
                        row.AgdInCde = (int)dr["AgdInCde"];
                        row.WrkStsInCde = Convert.ToInt32(dr["WrkStsInCde"]);
                        row.RqtExCde = dr["RqtExCde"].ToString();
                        row.CtcInCde = (int)dr["CtcInCde"];
     
                        try
                        {
                            row.RqtSolLimDte = (DateTime)dr["RqtSolLimDte"];
                            row.AgdDoneDte = (DateTime)dr["AgdDoneDte"];
                        }
                        catch
                        { }
     
                        maliste.Add(row);
                        Console.WriteLine(row.ToString());
                        somtest.updateQuery(r.insertAgd(row.RqtExCde, (DateTime)row.RqtSolLimDte, (bool)row.WrkTypPnt, row.OrigCpyAddrIncde, row.OrigCpyLocDsc, row.CtcInCde, row.AgdInCde, row.AgdElapseDel, (DateTime)row.AgdFromDte, (DateTime)row.AgdToDte, (DateTime)row.AgdDoneDte, row.WrkDsc, row.WrkStsInCde, (bool)row.PDASendPnt1, row.TypExCde));
                    }
     
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
     
                return maliste;
            }
    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Manifestement y'a un truc qui n'est pas cohérent entre ton code et ta base.
    Il faut déjà appliquer quelques bonnes pratiques avant d'y voir plus clair:
    Première bonne pratique: Les requêtes parametrées!, ca t'évitera les concaténations de valeurs ce qui déjà n'est pas génial en performance mais en plus dangereux (injections SQL) et source d'un nombre considérable de problèmes!
    http://webman.developpez.com/article.../sqlparameter/
    http://johannblais.developpez.com/tu...s-donnees/#LIV
    Seconde bonne pratique: pourquoi un try avec un catch vide?

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour l'astuce je vais regarder ça.
    Sinon pour le catch vide c'est ou oubli de ma part, je vais rajouter un message sur la console.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    J'ai effectué les modifications conseillées mais toujours la même erreur et en enlevant le try/catch j'ai une autre qui est
    Le cast spécifié n'est pas valide
    .

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Ben voila! Tu as ta réponse! Au lieu de caster les dates, regarde quelles têtes elles ont, elles sont peut être au format texte. Auquel cas, il faudrait faire un DateTime.Parse()

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci en les affichant, j'ai toujours l'erreur mais j'en ai certainess qui sont nulles ou qui sont au 1er janvier 1900, le format me semble correct pourtant

    Dès que j'ai une valeur null à insérer, l'insertion de la ligne échoue. Comment ça se fait car j'ai bien vérifié dans la base, le champs peut être null.

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Je suis toujours bloqué si vous avez de nouvelles suggestions je suis preneur.
    Ma date n'est pas au format texte mais au format DateTime?

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    définit la au format pour dire qu'elle peut être nulle c'est valable pour les autres variable (Decimal?...), il faut juste ajouter un ?

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta réponse mais je l'ai bien déclaré au format

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    c'est toujours le même ton code d'insertion ou tu l'a modifié?
    sinon tu peux faire une vérification sur ta date, si elle est nulle tu lui attribut une date (Datetime.Now ou new DateTime())

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour ta proposition c'est à tester ça contournera le problème.
    Mon code a changé, le voici maintenant :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    public void updateAGD(string rqtexcde, DateTime? rqtsollimdte, bool wrktyppnt, int origcpyaddrincde, string origcpylocdsc, int ctcincde, int agdincde, int agdelapsedel, DateTime agdfromdte, DateTime agdtodte, DateTime? agddonedte, string wrkdsc, int wrkstsincde, bool pdasendpnt, string typexcde)
            {
                try
                {
                    if (maConnection == null || maConnection.State != ConnectionState.Open)
                    {
                        this.Connect();
                    }
                    // Objet Command
                    string query = "INSERT INTO [SOMTEST].[dbo].[w_agdpec] " +
                                   "([RqtExCde] " +
                                   ",[RqtSolLimDte] " +
                                   ",[WrkTypPnt] " +
                                   ",[OrigCpyAddrIncde] " +
                                   ",[OrigCpyLocDsc] " +
                                   ",[CtcInCde] " +
                                   ",[AgdInCde] " +
                                   ",[AgdElapseDel] " +
                                   ",[AgdFromDte] " +
                                   ",[AgdToDte] " +
                                   ",[AgdDoneDte] " +
                                   ",[WrkDsc] " +
                                   ",[WrkStsInCde] " +
                                   ",[PDASendPnt] " +
                                   ",[TypExCde] " +
                                   ",[RqtPecInCde] " +
                                   ",[RqtPecFromDte] " +
                                   ",[RqtPecToDte] " +
                                   ",[WrkExCde] " +
                                   ",[RqtNatExCde]) " +
                             "VALUES " +
                                   "(@rqtexcde " +
                                   ",@rqtsollimdte " +
                                   ",@wrktyppnt " +
                                   ",@origcpyaddrincde " +
                                   ",@origcpylocdsc " +
                                   ",@ctcincde " +
                                   ",@agdincde " +
                                   ",@agdelapsedel " +
                                   ",@agdfromdte " +
                                   ",@agdtodte " +
                                   ",@agddonedte " +
                                   ",@wrkdsc " +
                                   ",@wrkstsincde " +
                                   ",@pdasendpnt " +
                                   ",@typexcde " +
                                   ",NULL" +
                                   ",NULL " +
                                   ",NULL " +
                                   ",NULL " +
                                   ",NULL)";
     
                    SqlCommand command = new SqlCommand(query, maConnection);
     
                    // Création et déclaration des paramètres
                    command.Parameters.Add(new SqlParameter("@rqtexcde", SqlDbType.VarChar, 10));
                    command.Parameters.Add(new SqlParameter("@rqtsollimdte", SqlDbType.DateTime));
                    command.Parameters.Add(new SqlParameter("@wrktyppnt", SqlDbType.Bit));
                    command.Parameters.Add(new SqlParameter("@origcpyaddrincde", SqlDbType.Int));
                    command.Parameters.Add(new SqlParameter("@origcpylocdsc", SqlDbType.VarChar , 50));
                    command.Parameters.Add(new SqlParameter("@ctcincde", SqlDbType.Int));
                    command.Parameters.Add(new SqlParameter("@agdincde", SqlDbType.Int));
                    command.Parameters.Add(new SqlParameter("@agdelapsedel", SqlDbType.Int));
                    command.Parameters.Add(new SqlParameter("@agdfromdte", SqlDbType.DateTime));
                    command.Parameters.Add(new SqlParameter("@agdtodte", SqlDbType.DateTime));
                    command.Parameters.Add(new SqlParameter("@agddonedte", SqlDbType.DateTime));
                    command.Parameters.Add(new SqlParameter("@wrkdsc", SqlDbType.VarChar , 50));
                    command.Parameters.Add(new SqlParameter("@wrkstsincde", SqlDbType.Int));
                    command.Parameters.Add(new SqlParameter("@pdasendpnt", SqlDbType.Bit));
                    command.Parameters.Add(new SqlParameter("@typexcde", SqlDbType.VarChar , 3));
     
                    // Attribution des valeurs aux paramètres
                    command .Parameters["@rqtexcde"].Value = rqtexcde;
                    command.Parameters["@rqtsollimdte"].Value = rqtsollimdte;
                    command .Parameters["@wrktyppnt"].Value = convertToBool(wrktyppnt) ;
                    command .Parameters["@origcpyaddrincde"].Value = origcpyaddrincde ;
                    command .Parameters["@origcpylocdsc"].Value = origcpylocdsc  ;
                    command .Parameters["@ctcincde"].Value = ctcincde ;
                    command .Parameters["@agdincde"].Value = agdincde ;
                    command .Parameters["@agdelapsedel"].Value = agdelapsedel ;
                    command .Parameters["@agdfromdte"].Value = agdfromdte ;
                    command .Parameters["@agdtodte"].Value = agdtodte ;
                    command.Parameters["@agddonedte"].Value = agddonedte;
                    command .Parameters["@wrkdsc"].Value = wrkdsc ;
                    command .Parameters["@wrkstsincde"].Value = wrkstsincde ;
                    command .Parameters["@pdasendpnt"].Value = convertToBool(pdasendpnt ) ;
                    command .Parameters["@typexcde"].Value = typexcde ;
     
                    // Execution
                    command.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                //fermeture connexion
                this.Disconnect();
            }
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
            public List<AGD> ListAGD(string d, int ctcincde)
            {
                Console.WriteLine("Contact : " + ctcincde.ToString());
                DataSet monDataSet = som.getQuery(r.getListeAGD(d, ctcincde));
                List<AGD> maliste = new List<AGD>();
     
                try
                {
                    foreach (DataRow dr in monDataSet.Tables[0].Rows)
                    {
                        AGD row = new AGD();
     
                        row.WrkTypPnt = (bool)dr["WrkTypPnt"];
                        row.OrigCpyAddrIncde = (int)dr["OrigCpyAddrIncde"];
                        row.WrkDsc = dr["WrkDsc"].ToString();
                        row.OrigCpyLocDsc = dr["OrigCpyLocDsc"].ToString();
                        row.AgdElapseDel = (int)dr["AgdElapseDel"];
                        row.AgdFromDte = (DateTime)dr["AgdFromDte"];
                        row.AgdToDte = (DateTime)dr["AgdToDte"];
                        row.PDASendPnt1 = (bool)dr["PDASendPnt"];
                        row.AgdInCde = (int)dr["AgdInCde"];
                        row.WrkStsInCde = Convert.ToInt32(dr["WrkStsInCde"]);
                        row.RqtExCde = dr["RqtExCde"].ToString();
                        row.CtcInCde = (int)dr["CtcInCde"];
                        row.RqtSolLimDte = dr["RqtSolLimDte"] == DBNull.Value ? null : (DateTime?)dr["RqtSolLimDte"];
                        row.AgdDoneDte = dr["AgdDoneDte"] == DBNull.Value ? null : (DateTime?)dr["AgdDoneDte"];
                        /*row.RqtSolLimDte = (DateTime)dr["RqtSolLimDte"];
                        row.AgdDoneDte = (DateTime)dr["AgdDoneDte"];*/
     
                            Console.WriteLine("RqtSolLimDte => "+row.RqtSolLimDte + "  AgdDoneDte => " + row.AgdDoneDte);
     
                        maliste.Add(row);
     
                        somtest.updateAGD(row.RqtExCde, row.RqtSolLimDte, (bool)row.WrkTypPnt, row.OrigCpyAddrIncde, row.OrigCpyLocDsc, row.CtcInCde, row.AgdInCde, row.AgdElapseDel, (DateTime)row.AgdFromDte, (DateTime)row.AgdToDte, row.AgdDoneDte, row.WrkDsc, row.WrkStsInCde, (bool)row.PDASendPnt1, row.TypExCde);
                    }
     
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
     
                return maliste;
            }

  12. #12
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    En rajoutant DateTime.Now ça contourne bien le problème, les insertions se font correctement. Dans un premier temps, je vais rester là dessus mais si vous avez d'autres propositions je suis preneur.

  13. #13
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    il semble que SqlDbType.DateTime n'accepte pas les valeur null

    sur un autre site il propose de faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (rqtsollimdte != null)
    {
    command.Parameters["@rqtsollimdte"].Value = rqtsollimdte;
    }
    else
    {
    command.Parameters["@rqtsollimdte"].Value = SqlDateTime.Null ;
    }

  14. #14
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 307
    Points : 87
    Points
    87
    Par défaut
    Merci pour le code, ça marche problème résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Problème Insertion sur SQL server (WebApp)
    Par clickandgo dans le forum Projets ADP
    Réponses: 0
    Dernier message: 16/01/2015, 20h11
  2. Problème intégration feuille Excel dans une bdd sql server
    Par soufiane669 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 29/07/2010, 10h06
  3. insertion image dans une BDD SQL server
    Par yamyoung dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/04/2009, 11h10
  4. Problème de connexion avec BDD sql server 2008
    Par Kalion dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/03/2009, 09h48
  5. Réponses: 4
    Dernier message: 06/03/2008, 13h08

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