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 :

Mettre SYSDATE dans une colonne Datarow [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut Mettre SYSDATE dans une colonne Datarow
    Bonjour,

    J'utilise le code suivant pour mettre à jour ou créer un enregistrement dans une table :
    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
     
    OracleConnection connexion = new OracleConnection(OraDb);
    connexion.Open();
    OracleCommand command = new OracleCommand();
    command.Connection = connexion;
     
    command.CommandText = "SELECT USER, SYSDATE, MATABLE.ID, MATABLE.COD_USRMAJ FROM MATABLE WHERE MATABLE.ID = :ID";
    command.CommandType = CommandType.Text;
     
    OracleParameter parameter = new OracleParameter("ID", OracleDbType.Char);
    parameter.Value = MaValeur;
    parameter.Direction = ParameterDirection.Input;
    command.Parameters.Add(parameter);
     
    OracleDataAdapter adapter = new OracleDataAdapter();
    adapter.SelectCommand = command;
     
    OracleCommandBuilder builder = new OracleCommandBuilder(adapter);
     
    DataSet dataset = new DataSet();
    adapter.Fill(dataset, "TABLE");
     
    DataTable Dt = dataset.Tables["TABLE"];
     
    DataRow row;
     
    // Si création
    If (booCreation)
    {
          row = Dt.DataSet.Tables["TABLE"].NewRow();
     
          row["COD_USRMAJ"] = MaDate;
     
          // Ajout du nouvel enregistrement
          dataset.Tables["TABLE"].Rows.Add(row);
    }
    else
    {
          row = Dt.Rows[0];
          row["COD_USRMAJ"] = row["SYSDATE"]
    }
     
    adapter.Update(rec.dataset, "TABLE");
    adapter.Fill(rec.dataset);
    Si je suis en mise à jour, la colonne COD_USRMAJ est bien renseignée avec SYSDATE, mais si je suis en création, comment obtenir SYSDATE ?
    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Euh... DateTime.Now ?

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    DateTime.Now renvoie l'heure du poste. je souhaiterais l'heure de la BDD qui, elle, ne peut être changée par l'utilisateur.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur E&D
    Inscrit en
    Février 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur E&D

    Informations forums :
    Inscription : Février 2010
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    En te connectant à ton serveur via c# tu peut surement executer certaines des commandes qui lui sont propres non ?
    As tu chercher les commandes relatives à l'heure sur le serveur qui stocke ta base de données ?
    As tu essayer d'executer une commande stockée sur le serveur depuis ton code (pour savoir si c'est possible déja) ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 875
    Points : 39 749
    Points
    39 749
    Par défaut
    bah fais une requête sur la DB alors...

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SYSDATE FROM DUAL

  6. #6
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Points : 73
    Points
    73
    Par défaut
    Oui, je peux exécuter une procédure stockée depuis le code
    Oui, je peux faire un SELECT SYSDATE FROM DUAL

    Mais je voulais utilisé la requête en cours, sans avoir à en exécuter une autre.

    Du coup, j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (booCreation)
          command.CommandText = "SELECT USER, SYSDATE, MATABLE.ID, MATABLE.COD_USRMAJ FROM MATABLE WHERE ROWNUM = 1";
    Else
          command.CommandText = "SELECT USER, SYSDATE, MATABLE.ID, MATABLE.COD_USRMAJ FROM MATABLE WHERE MATABLE.ID = :ID";
    et ensuite,
    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
    string MaDate;
    If (booCreation)
    {
          row = Dt.Rows[0];
          MaDate = row["SYSDATE"];
     
          row = Dt.DataSet.Tables["TABLE"].NewRow();
     
          row["COD_USRMAJ"] = MaDate;
     
          // Ajout du nouvel enregistrement
          dataset.Tables["TABLE"].Rows.Add(row);
    }
    else
    {
          row = Dt.Rows[0];
          row["COD_USRMAJ"] = row["SYSDATE"]
    }
    Cela suppose qu'il y ait au moins 1 enregistrement dans ma table.

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

Discussions similaires

  1. Mettre un "flag" dans une colonne
    Par lesanglier dans le forum Configuration
    Réponses: 6
    Dernier message: 05/10/2009, 16h58
  2. Réponses: 7
    Dernier message: 09/06/2009, 21h51
  3. mettre des 1 dans une colonne
    Par Kiphrine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2009, 20h31
  4. Réponses: 1
    Dernier message: 08/03/2007, 12h35
  5. Réponses: 1
    Dernier message: 29/08/2004, 19h45

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