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

您的查询包含三个参数(@TS_OUT、@DATA_OUT 和 @ID),但您只提供前两个参数,而不是 @ID。

于 2012-05-08T20:58:56.397 回答
2

我看不到您@ID在代码中设置参数的位置。您的 SQL 语句包含三个参数,您只提供两个参数。

于 2012-05-08T20:58:08.127 回答