1

うん!その私は再び-私は最近あなたに非常に頻繁に尋ねなければならないようです...

今回の問題:テーブル内の一部(すべてではない)の値を更新するSQLiteコマンドを作成しました。これが私のコードです:

using (SQLiteConnection con = new SQLiteConnection(string.Format("Data Source={0};Version=3;", mstrDatabase)))
{
    try
    {
        using (SQLiteCommand com = new SQLiteCommand("update WDATEN set TS_OUT = @TS_OUT, DATA_OUT = @DATA_OUT where ID = @ID", con))
        {
            com.Parameters.AddRange(new SQLiteParameter[] 
            {
                new SQLiteParameter("TS_OUT", DbType.DateTime){ Value = date},
                new SQLiteParameter("DATA_OUT", DbType.Double){ Value = numRest.Value}
            });
            con.Open();
            com.ExecuteNonQuery();
            mDa.Fill(dsWDaten.WDATEN);
            con.Close();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Beim Speichern des Datensatzes ist ein Fehler aufgetreten.\n" + ex.ToString(), "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

悲しいことに、このコードブロックを実行するたびに、例外が発生します。

SQLiteエラー。コマンドに指定されたパラメーターが不十分です。

ここや他のページで検索しても役に立ちませんでした。私は何が欠けていますか?

4

2 に答える 2

4

クエリには3つのパラメータ(@ TS_OUT、@ DATA_OUT、@ ID)がありますが、@ IDではなく、最初の2つのパラメータのみを指定しています。

于 2012-05-08T20:58:56.397 に答える
2

@IDコードのどこにパラメータを設定したかわかりません。SQLステートメントには3つのパラメーターが含まれており、2つだけの値を指定します。

于 2012-05-08T20:58:08.127 に答える