C# - Wie bekomme ich eine Benutzer-Eingabe für Datum und Zeit
Ich möchte in der Lage sein, um einen Punkt aus einer Datenbank mit Datum und Uhrzeit der Punkt erstellt wurde. Ich möchte dies tun, indem er fragt, was der Benutzer Datum/Uhrzeit, die Sie möchten, und verwenden Sie dann das Datum/Zeit, um den Punkt zu finden. Das ist mein code momentan, Sie bekommt den Punkt aber nur die Daten aus der genauen Zeit, die ich den code ausführen. Ich würde gerne in der Lage, abrufen von Daten aus einer 6/4/2012 4:50:29 zum Beispiel.
//connect to pi server
PIServers piServers = new PIServers();
foreach (var server in piServers)
{
Console.WriteLine("Server: {0}", server.Name);
}
PIServer piServer = piServers.DefaultPIServer;
Console.WriteLine("Default Server: {0}", piServer.Name);
piServer.Connect();
//get a PI Point
var point = PIPoint.FindPIPoint(piServer, "Pipoint");
var value = point.Snapshot();
Console.WriteLine("Point {0} Value {1} {2}", point.Name,
value.Value.ToString(),value.Timestamp.ToString());
Vielen Dank für die Hilfe.
- Sind Sie Fragen, wie bekomme ich eine input-datetime-von einem user und dann rufen Sie einen DB-Eintrag mit, dass die Eingabe?
- Richtig, in diesem Fall, dass die DB-Datensatz wird in die form einer kompletten Spalte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie tun müssen, ist die erste Frage an den Benutzer:
Nun
userInput
ist ein string, also musst du es umwandeln in einDateTime
Objekt, ich würde nicht wirken direkt da, es ist sehr einfach einenInvalidCastException
, also sollten wir mit der eingebautenTryParse(String, out DateTime)
um zu überprüfen, ob es sich um eine richtigeDateTime
.Wenn
userInput
war die richtigeDateTime
dann dieresult
eine gültigeDateTime
Objekt. Wenn es nicht korrekt war dieresult
wirdDateTime.MinValue
so würde ich überprüfen:DateTime
Eingang sein?2015-01-01 00:00:00
hier eine Liste der Formate msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs. 110).aspxHaben Sie, um eine Eingabe von einem Benutzer und speichern Sie den Wert in eine variable.
Ich gehe davon aus, dass
var point = PIPoint.FindPIPoint(piServer, "Pipoint");
ist die Zeile code, der Abfragen an die DB für ein Spiel.In diesem Fall würden Sie wollen, übergeben Sie die datetime als string.
string input = Console.Readline();
und dann übergeben Sie einfach userInput die FindPIPoint Methode.Aber wenn die .FindPiPoint Methode ist auf der Suche nach einem datetime-Sie brauchen würde, um ihn zu wirken, um ein datetime-Objekt zuerst.
Da diese Arbeit auf der Annahme, dass alle möglichen datetime ist eine mögliche übereinstimmung(und ich bezweifle, dass dies der Fall ist) sollten Sie eine Fehlerbehandlung für ein Falsches Spiel.