Conversion date : vb.NET ---> SQL Server (T-SQL)
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Conversion date : vb.NET ---> SQL Server (T-SQL)



  1. #1
    adrien-polytech

    Conversion date : vb.NET ---> SQL Server (T-SQL)


    ------

    Bonjour à tous,

    je m'apprêtais à entrer une donnée (un champ valeur numérique et un champ date) à partir d'une requête dans vb.NET dans une BDD (SQL Server) :

    Code:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Connexion As New SqlConnection("Data Source=localhost;Initial Catalog=PDSDatabase;User Id=sa;Password=********;")
            Connexion.Open()
            Dim Requete As String = "Insert into Temperature(Valeur, Date) values (2 ," & Format(Now, "yyyy-MM-dd hh:mm:ss") & ")"
            '2013-08-27 09:44:32
            Dim Commande As New SqlCommand(Requete, Connexion)
            Commande.ExecuteNonQuery() 'invalid syntax near '09'
            Commande.Dispose()
            Connexion.Close()
        End Sub
    dans un premier temps je me suis rendu compte que les constructeurs date de VB.NET et de la BDD n'étaient pas similaires :
    VB.NET : dd/MM/yyyy hh:mm:ss
    BDD : yyyy/MM/dd hh:mm:ss (smalldatetime en fait)

    Du coup, j'ai chercher une fonction .NET pour convertir ma date en VB dans le bon format (fonction Format). Mais malgré ça, une erreur résiste encore et toujours au développeur : "invalid syntax near '09'"

    Après des recherches sur le net n'ayant rien donné de convaincant (rien de mieux que la fct Format) je viens vous solliciter !

    Merci d'avance

    -----

  2. #2
    bisou10

    Re : Conversion date : vb.NET ---> SQL Server (T-SQL)

    Ca doit marcher si tu mets les quotes autour de la valeur date de ton INSERT, T-SQL est relativement permissif de mémoire.

    Sinon, une méthode correcte c'est de faire Now.ToShortDateString() avec un paramètre CultureInfo si tu veux la date ISO, pas un Format() qui est un cache-misère dans le cas de la manipulation des données DateTime.

  3. #3
    adrien-polytech

    Re : Conversion date : vb.NET ---> SQL Server (T-SQL)

    Absolument, quelle tête en l'air je fais hahaha, merci pour la réponse en tous cas !!

  4. #4
    kalahaine

    Re : Conversion date : vb.NET ---> SQL Server (T-SQL)

    Pour ce genre de choses, mieux vaut éviter les concaténations de chaînes :
    - qui génèrent souvent des erreurs (quotes manquantes). (là, il s'agit d'une date mais imagine que tu utilises une string qui contiennent un apostrophe, le caractère ne sera pas échappé et ta requête plantera)
    - qui sont sensibles aux injections SQL

    Regarde du côté des requêtes paramétrées (SQLParameter).
    De cette façon tu sécurises ton code et tu t'évites des heures de debuggage pour un apostrophe mal placé.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. windows server, small business server et tutti quanti
    Par seizetheday dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 21/04/2011, 11h02
  2. Server NTP
    Par invite1adb1a98 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 19/03/2010, 13h03
  3. Conversion de base : connaître le nième chiffre sans faire toute la conversion
    Par RVmappeurCS dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 02/07/2009, 19h14
  4. Server NTP
    Par invite58ab5c05 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 29/09/2006, 15h14
  5. server
    Par invitea301fcd6 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 22/03/2006, 11h11