SqlServer compact 与sqlserver的差异

今天把一个项目的数据库从sqlserver2008转成SqlServer compact 在执行数据查询时出了问题:

 捕捉到 System.Data.SqlServerCe.SqlCeException
  HResult=-2147467259
  Message=指定的参数值对函数无效。 [ Argument # = 1,Name of function(if known) = isnull ]
  Source=SQL Server Compact ADO.NET Data Provider
  ErrorCode=-2147467259
  NativeError=25922
  StackTrace:
       在 System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
       在 System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan()
       在 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options)
       在 System.Data.SqlServerCe.SqlCeCommand.ExecuteReader(CommandBehavior behavior)
       在 System.Data.SqlServerCe.SqlCeCommand.ExecuteDbDataReader(CommandBehavior behavior)
       在 System.Data.Common.DbCommand.ExecuteReader()
…………………………

google一下发现很多人遇到这问题。

解决的方法如下:把sql语句中  f.Bar = @bar OR @bar IS NULL  改成@bar OR cast(@bar AS varchar(4000)) IS NULL

原文地址

你可能感兴趣的:(SqlServer compact 与sqlserver的差异)