参数化查询时,如果参数类型和数据库的不匹配,将使索引失效,进行全表检索。类型对应如下图: ![](https://box.kancloud.cn/87ad87514de57c0b4a3671ad46cf5bfd_731x516.png) 框架里要注意的几点: 1、SqlMap里的参数类型 不要用不匹配的类型,如下图: 此处用String类型,在数据库里传进去的类型是 NVarchar ![](https://box.kancloud.cn/98f1e8d4238333155f7b0fb45ce9d68e_1216x211.png) ![](https://box.kancloud.cn/6f3d36a54a28e8b8e6c3ab320c226023_1069x166.png) 此处的地方是日期类型,应该用DateTime类型,如下图: ![](https://box.kancloud.cn/514aa3f4aed5a6cfac50dfb7c6d5f31d_1234x256.png) ![](https://box.kancloud.cn/71cffc0b545b37ebce2fb74832b80bc5_1061x153.png) 2、如果要传varchar类型,则需写成如下图的格式: 或者带上参数长度 `String,AnsiString,10` ![](https://box.kancloud.cn/1cb9d021172b0b8b8fa4e70e6b3ff748_1175x225.png) 官方解释是 ![](https://box.kancloud.cn/cbf4fe338da85e2bfc4c730f03ca119c_580x113.png) 3、如果SqlMap里的参数不指定类型,则会采用外部的赋值的时候的类型。 ![](https://box.kancloud.cn/dd5b76e08d6538896b76242c3356d756_842x195.png) ![](https://box.kancloud.cn/f924fac384a8ce80f7d9af9a59ab8dde_624x201.png) 4、在实体里面string类型如果不指定类型,则默认是varchar ,如果需要其他类型可以如下图指定方式: ![](https://box.kancloud.cn/663631fef60c13ba5574bf46f856bf79_712x170.png) 可以看到数据库跟踪器里 这个类型变成了 nvarchar 类型!! 如下图 ![](https://box.kancloud.cn/baa72c66e74f035089db2863f4dc2692_1179x158.png)