2
votes

Comment définir Datetime dans la colonne Datatable Datetime

J'essaie de stocker le datetime de cassis dans la colonne Datatable Datetime en utilisant le code ci-dessous

dtRow["dCurrantDate"] = DateTime.Now;

mais j'obtiens cette erreur:

Le type de valeur ne correspond pas au type de colonne dans la colonne dCurrantDate. Le type attendu est DateHeure.


8 commentaires

Postez vos erreurs ici au format texte, pas en images.


DateTime n'a pas de méthode Now () - seulement une propriété Now . Veuillez corriger votre code. Si DateTime est un objet personnalisé et non System.DateTime , veuillez fournir la signature pour Now () .


Peut-être DateTime.Now ?


@Roman Peut-être, mais étant donné l'erreur, peut-être pas. Dans tous les cas, nous avons besoin d'un exemple reproductible minimal .


Veuillez vérifier le type de données de votre colonne


J'essaye aussi avec System.DateTime.Now mais j'ai toujours la même erreur


Fournissez un exemple reproductible minimal , Hardik.


Imgur bloqué en Turquie . Pouvez-vous s'il vous plaît poster votre message d'erreur sous forme de texte brut?


5 Réponses :


2
votes

La solution se trouve dans le message d'erreur. C # DateTime équivaut à SQL datetime ou datetime2 . Vérifiez le type dans votre table SQL et, si nécessaire, définissez-le sur l'un de ces types de date.

Si vous regardez la définition de smalldatetime ici, il stocke l'heure différemment. Si vous avez besoin de temps, vous devrez tout supprimer sauf les heures et les minutes, sinon utilisez uniquement la date. Ajoutez .Date après Now .


3 commentaires

le type de données en SQL est shortdatetime. est-il possible de convertir et de stocker dans une colonne datatable?


Pouvez-vous changer le type de colonne dans votre table SQL?


Ohh Désolé mais je ne peux pas changer le type de colonne dans la table SQL



2
votes

Selon l'erreur affichée, le type de données de la colonne dans la base de données ne correspond pas à l'entrée (si le type de colonne est datetime, AM OU PM non stocké Utiliser le type datetime2)


0 commentaires

1
votes

Essayez ceci

    public void MakeDataTable(){
    DataTable myTable;
    DataRow myNewRow; 
    // Create a new DataTable.
    myTable = new DataTable("My Table");
    //ADDING DATETIME COLUMN
    DataColumn colDateTime = new DataColumn("DateTimeCol");
    colDateTime.DataType = System.Type.GetType("System.DateTime");
    myTable.Columns.Add(colDateTime);
    //ADDING ROW TO DATA-Table
    myNewRow = myTable.NewRow();
    myNewRow["DateTimeCol"] = System.DateTime.Now;
    myTable.Rows.Add(myNewRow);
}


2 commentaires

Merci de répondre. Mon flux de travail est,:, Dans Sql Table ont la colonne dCurrantDate par type de données shortdatetime. J'ai créé Datatable en récupérant les colonnes Sql Table et maintenant je veux stocker la date dans la colonne Datatable dCurrantDate de C #. Et aussi une autre colonne dans laquelle je veux stocker la date sélectionnée.


Je reçois un problème dans la colonne shortdatetime attachée à la colonne datatable, puis stocke la valeur dans Datatable



1
votes

En gros, une colonne DateHeure serait ajoutée comme indiqué ci-dessous, veuillez vérifier avec votre code `

        DataTable dt = new DataTable();

        DataColumn dc = new DataColumn();

        dc.ColumnName = "dCurrantDate";
        dc.DataType = typeof(DateTime);
        dt.Columns.Add(dc);

        DataRow dr = dt.NewRow();

        dr["dCurrantDate"] =DateTime.Now;
        dt.Rows.Add(dr);`


0 commentaires

0
votes

double cell = Convert.ToDouble (dataTable.Rows [rowCount] [columnCount]);

DateTime matchDate = DateTime.FromOADate (cellule);

C'est la solution la plus simple possible.


0 commentaires