簡體   English   中英

這是sqlite date或c#的編碼問題嗎?

[英]Is this an encoding issue with sqlite date or c#?

我有一份可以在流程開始和結束時運行並記錄日期的作業。 但是,在應用程序加載時,它需要獲取上一次運行的數據。 但是每次都會拋出一個異常說:字符串未被識別為有效的DateTime。

當然,當我查看存儲的數據時,我會發現例如“ 2013-41-10 10:08”

預先設定

string jobsDate = DateTime.Now.ToString("yyyy-mm-dd HH:MM");

我正在使用的語句是:

bool IsInserted = db.Update("UPDATE jobs SET JobLastRun ='" + jobsDate + "', jobStatus = '" + status + "' WHERE rowid = " + rowid );

db.Update在很大程度上是多余的,但在此不作贅述

    public bool Update(String updateQuery)
    {
        Boolean returnCode = true;
        try
        {
            //dbl.AppendLine(sql);
            dbl.AppendLine(updateQuery);
            this.ExecuteNonQuery(updateQuery);
        }
        catch(Exception crap)
        {
            OutCrap(crap);
            returnCode = false;
        }
        return returnCode;
    }


    public int ExecuteNonQuery(string sql)
    {
        SQLiteConnection cnn = new SQLiteConnection(dbConnection);
        cnn.Open();
        SQLiteCommand mycommand = new SQLiteCommand(cnn);
        mycommand.CommandText = sql;
        int rowsUpdated = mycommand.ExecuteNonQuery();
        cnn.Close();
        return rowsUpdated;
    }

任何人?

這是編碼問題嗎?

否。您使用分鍾和月份格式說明符的方式是錯誤的。 它應該是

  string jobsDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                                                ^^       ^^
 MM = Months
 mm = minutes
 HH = hours in 24 hour clock
 hh = hours in 12 hour clock

一個很好的參考是: C#中的字符串格式

2013-41-10 10:08不是正確的日期時間。

由於您的格式字符串在此處存儲,因此:

string jobsDate = DateTime.Now.ToString("yyyy-mm-dd HH:MM");

在格式字符串中,“ MM”表示月份,“ mm表示分鍾,因此正確的字符串應為:

string jobsDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm");

這是編碼問題嗎?

絕對不是 這是引起您問題的格式。

如果看一下代碼,您會發現

2013-41-10 10:08

41絕對不能是幾個月。 您得到這個是因為mm較小,這意味着幾分鍾。 幾個月后,您需要將其更改為MM ,而薄荷糖則需要在HH之后將其更改為mm 您需要像這樣更改

string jobsDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm");  //note the capital MM for months and small mm for mintues

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM