2016-05-13 28 views
0

我遇到了DateTime問題,特別是我要從sqlite的表中讀取所有記錄,現在列名是StartDate並且是DateTime格式。這就是我如何試圖讀取數據:FormatTime沒有在DateTime上管理

dbCon.Open(); 
string sql = "SELECT * FROM " + table_name; 
SQLiteCommand command = new SQLiteCommand(sql, dbCon); 
var reader = command.ExecuteReader(); 

while (reader.Read()) 
{ 
     Console.WriteLine(reader["StartDate"]); 
     .. 

,但我得到:

FormatException was not managed

記錄的日期是這種格式 2016年5月3日

+0

你使用過調試器嗎? 'reader [「StartDate」]真的是'DateTime'嗎?你究竟在哪裏得到例外?在'command.ExecuteReader()'處,在'while(reader.Read())'或'Console.WriteLine(reader [「StartDate」])? –

+0

我在Console.WriteLine上遇到異常。在數據庫表中是'DateTime' – IlDrugo

+0

在該行設置斷點並在調試器中嘗試使用'((DateTime)reader [「StartDate」])。ToString()'。你有同樣的例外嗎?一般來說'DateTime'不是格式,因爲它沒有格式。它只是一個價值。 –

回答

1

好經過大量的嘗試,我找到了一個解決方案,尤其是SQLite似乎沒有自動識別連接,爲了解決這個問題,我們需要聲明這樣的連接來源:

source=<source to db file>;version=3;new=False;datetimeformat=CurrentCulture 

並且可以讀取日期如下之後:

Console.WriteLine(reader["StartDate"]); 

沒有錯誤返回,希望這可以幫助。