繁体   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