2017-10-10 4 views
-3

Je suis en train de convertir un code de .NET C# Voici le code:DateTime de vb.net à C#

While getReader.Read 

     ' getting the time in and time out 12 hour format 
     time_in = (getReader.Item("time_in").ToString) 
     time_out = (getReader.Item("time_out").ToString) 

     With Listview1.Items.Add(getReader.Item("worker_fullname").ToString) 

      .SubItems.Add(Format(time_in, "h:mm:ss tt")) 
      .SubItems.Add(Format(time_out, "h:mm:ss tt")) 
      .SubItems.Add(Format(getReader.Item("date"), "MMM dd, yyyy")) 

     End With 

    End While 

conversion de code en ligne ne me permet pas du tout. J'ai de la difficulté à (getReader.Item("time_in").ToString). J'ai essayé DateTime.TryParseExact(getReader[3], "h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out time_in); mais il dit qu'il ne peut pas convertir d'objet en chaîne. Et dans le End et End With, il semble que C# n'a pas de construction de langage équivalent pour cela.

+0

Vous devriez également afficher votre code C#. – Rotem

+4

Fossé le "convertisseur de code". Que voulez-vous que votre code C# * fasse *? Quelle est la fonctionnalité que vous souhaitez atteindre? Quel code avez-vous écrit pour réaliser cette fonctionnalité? En quoi cela ne fonctionne-t-il pas comme prévu? – David

+1

Quelle est l'heure des champs 'time_in',' time_out'? Si c'est 'DateTime' vous n'avez pas besoin de convertir ou d'analyser quoi que ce soit. Jetez juste la valeur à 'DateTime'. Cela devrait également être fait dans le code VB.NET. C'est en fait un * bug * pour utiliser des chaînes à la place des dates –

Répondre

0

Appel ToString():

DateTime.TryParseExact(getReader[3].ToString(), "h:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out time_in); 
0
while (reader.Read()) 
{ 
    var timeIn = reader["time_in"].ToString(); 
    var timeOut = reader["time_out"].ToString(); 
    var workerFullName = reader["worker_fullname"].ToString(); 
    var date = reader["date"].ToString(); 

    //move to utility method 
    DateTime timeInDateTime; 
    DateTime.TryParseExact(timeIn, "h:mm:ss tt", null, DateTimeStyles.None, out timeInDateTime); 

    DateTime timeOutDateTime; 
    DateTime.TryParseExact(timeOut, "h:mm:ss tt", null, DateTimeStyles.None, out timeOutDateTime); 

    DateTime dateParsed; 
    DateTime.TryParseExact(date, "MMM dd, yyyy", null, DateTimeStyles.None, out dateParsed); 

    //add to list 
} 
0

AVEC ... FIN AVEC ne pas équivalent en C# (peu importe combien je l'aime). Il faut l'assigner à une variable locale comme:

... 
var item = Listview1.Items.Add(getReader.Item("worker_fullname").ToString); 
item.SubItems.Add($"{time_in, "h:mm:ss tt")) 
... 

En ce qui concerne l'obtention de données du lecteur, il dépend de la façon dont sont les données stockées dans le stockage (base de données). Dans votre cas, je guessc soit getReader.GetString (3) ou getReader.GetDateTime (3)

0

Essayez cette

(getReader.Item("time_in").Value.ToString) 
0

vous pouvez utiliser ce

DateTime dt = DateTime.Parse (lecteur [ » time_in "]. toString (" MM/jj/aaaa hh: mm: ss tt "));