1

プロセスの開始時と終了時に日付を実行して記録するジョブがあります。ただし、アプリケーションのロード時に、前回の実行のデータを取得する必要があります。しかし、例外がスローされるたびに、「文字列は有効な 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;
    }

誰?

4

3 に答える 3

1

これはエンコードの問題ですか?

いいえ。分と月の書式指定子が間違っています。そのはず

  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-08-11T10:15:21.583 に答える
0

2013-41-10 10:08は正しい日時ではありません。

ここにフォーマット文字列があるため、そのように保存されました:

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

formatstring では、「MM」は月をmm意味し、分を意味するため、正しい文字列は次のようになります。

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

于 2013-08-11T10:16:14.227 に答える
0

これはエンコードの問題ですか?

絶対にありません。これは、問題を引き起こしているフォーマットです。

あなたのコードを見ると、それがわかるでしょう

2013-41-10 10:08

41 が月になることは絶対にありません。mm分を意味する小さいため、これを取得しています。月の場合はMMに変更する必要があり、ミントの場合は after に変更する必要がありmmますHH。このように変更する必要があります

string jobsDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm");  //note the capital MM for months and small mm for mintues
于 2013-08-11T10:17:08.773 に答える