2011-10-31 29 views
0

有一個奇怪的場景,其中的ADO.Net回頭率SQLite的參數化的更新

更新查詢 「錯誤的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

你有一個錯字:「@DeviceId}」應該是「@DeviceId」

+0

你必須在開玩笑吧!我花了很長時間才發現! 100000 –