0

-編集-気にしないでください、私は私の選択ステートメントを間違えました。アップデートは正しく機能していました。

理由はわかりませんが、sqliteDBが更新されていません。このクエリは、影響を受けるテーブルに対して1を返すことがわかりますが、アプリを閉じるか、特定のselectステートメントを実行すると、この更新が行われなかったかのようになります。2ノート。1)挿入は正常に機能します。2)コードにトランザクションはありません。

void update(long pid, RetType dlStatus, Type type)
{
    command.CommandText = "UPDATE table SET dlStatus=@dlStatus, type=@type WHERE pid=@pid;";
    command.Parameters.Add("@dlStatus", System.Data.DbType.Int64).Value = dlStatus;
    command.Parameters.Add("@type", System.Data.DbType.Int64).Value = type;
    command.Parameters.Add("@pid", System.Data.DbType.Int64).Value = pid;
    int v = command.ExecuteNonQuery(); //v==1 so....
    v++;
}
4

1 に答える 1

2

自動コミットがデフォルトでオフになっている場合、UPDATEは表示されません。

SQL Liteサイトには、デフォルトでオンになっていると書かれています。

http://www.sqlite.org/c3ref/get_autocommit.html

あなたのテーブルは「テーブル」という名前ですか?キーワードの使用には問題があるのではないかと思います。他のクエリで引用しますか?

http://www.sqlite.org/lang_keywords.html

于 2009-09-07T16:06:47.823 に答える