SQLite Параметризованное ОБНОВЛЕНИЕ - PullRequest
0 голосов
/ 31 октября 2011

Есть странный сценарий, когда ADO.Net продолжает возвращать «Ошибка SQLite. Недостаточно параметров, предоставленных команде»

Запрос ОБНОВЛЕНИЯ:

UPDATE [Device] SET
[DeviceSerial] = @DeviceSerial,
[RegistrationDate] = @RegistrationDate,
[RegistrationNumber] = @RegistrationNumber,
[Password] = @Password,
[Make] = @Make,
[Year] = @Year,
[OdometerStart] = @OdometerStart,
[PurchaseValue] = @PurchaseValue,
[Closed] = @Closed
WHERE [DeviceId] = @DeviceId

Параметры:

{ "@DeviceSerial", this.DeviceSerial }, 
{ "@RegistrationDate", this.RegistrationDate }, 
{ "@RegistrationNumber", this.RegistrationNumber }, 
{ "@Password", this.Password }, 
{ "@Make", this.Make }, 
{ "@Year", this.Year }, 
{ "@OdometerStart", this.OdometerStart }, 
{ "@PurchaseValue", this.PurchaseValue }, 
{ "@Closed", this.Closed }, 
{ "@DeviceId}", this.DeviceId } 

Мой метод DataHandler:

public static bool CallSqlText(string sqlStatement, Dictionary<string, object> parameters)
        {
            ConnectionCheck();
            try
            {
                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStatement;
                foreach (var item in parameters)
                {
                    cmd.Parameters.AddWithValue(item.Key, item.Value);
                }
                return (cmd.ExecuteNonQuery() > 0);
            }
            catch { }
            return false;
        }

1 Ответ

1 голос
/ 31 октября 2011

У вас есть опечатка: "@DeviceId}" должно быть "@DeviceId"

...