2015-07-10 68 views
0

我希望能夠使用創建點的日期和時間從數據庫中獲得一個點。我想通過詢問用戶他們想要什麼日期/時間來做到這一點,然後使用該日期/時間來查找該點。這是我目前的代碼,它獲得了這一點,但只有來自我運行代碼的確切時間的數據。我希望能夠從2012年6月4日4:50:29獲取數據。C# - 如何獲得日期和時間的用戶輸入

//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()); 

非常感謝您的幫助。

+0

你問你如何從用戶獲得輸入日期時間,然後用該輸入檢索數據庫記錄? – Ju66ernaut

+0

正確,在這種情況下,該數據庫記錄將以整列的形式出現 – Shutere

回答

0

你需要做的就是先問用戶什麼:

Console.WriteLine("Enter date"); 
var userInput = Console.ReadLine(); 

現在userInput是一個字符串,所以你需要將它轉換成一個DateTime對象,我不會直接投它,因爲它是很容易得到一個InvalidCastException,所以我們應該使用內置的TryParse(String, out DateTime)來驗證它是否正確DateTime

DateTime result; 
DateTime.TryParse(userInput, out result); 

如果userInput是正確DateTime那麼result將是一個有效的DateTime對象。如果它是不正確的resultDateTime.MinValue所以我會檢查:

if(!result.Equals(DateTime.MinValue)) 
{ 
    // Continue to look it up in the DB 
} 
+0

正確的「DateTime」輸入是什麼? – Shutere

+0

例如'2015-01-01 00:00:00'這裏是格式列表https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx –

0

你必須得到來自用戶的輸入和值存儲在一個變量。

我假設var point = PIPoint.FindPIPoint(piServer, "Pipoint");是向數據庫查詢匹配的代碼行。

在這種情況下,您希望將日期時間作爲字符串傳遞。 string input = Console.Readline();然後只是將userInput傳遞給FindPIPoint方法。

但是,如果.FindPiPoint方法正在查找日期時間,則需要先將其轉換爲日期時間對象。

由於這是假設任何可能的日期時間是可能的匹配(我懷疑是這種情況),您應該爲不正確的匹配添加一些錯誤處理。

相關問題