首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TADODataSet的Filter过滤出错“参数类型不正确”,该怎么解决

2012-05-27 
TADODataSet的Filter过滤出错“参数类型不正确”AnsiString filterStr for (int i0 iValueListEdito

TADODataSet的Filter过滤出错“参数类型不正确”
AnsiString filterStr = "";
for (int i=0; i<ValueListEditor1->Strings->Count;i++)
  {
  if(i<1)
  {filterStr=ValueListEditor1->Keys[i+1]+" LIKE '%"+ValueListEditor1->Cells[1][i+1]+"%'";}
  else
  {filterStr=filterStr +"and"+ ValueListEditor1->Keys[i+1]+" LIKE '%"+ValueListEditor1->Cells[1][i+1]+"%'";}
  ADODataSet1->Filtered = false;
  ADODataSet1->Filter = filterStr;
  ADODataSet1->Filtered = true;
程序是这么写的,每次只是一条过滤条件的话可以成功运行,如果是2条以上就会出现“参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突”
我自己在ADODataSet1的filter属性里,分别试验了 “供应商 like '%1%'” 和 “供应商 like '%1%' and 日期 like '%1%'”这两句,都是可以运行的,为什么一定义为字符串就不行呢,求高手指教。

[解决办法]
你调试的时候看下拼接的filterstr内容对不对
[解决办法]
{filterStr=filterStr +"and"+ ValueListEditor1->Keys[i+1]+" LIKE '%"+ValueListEditor1->Cells[1][i+1]+"%'";}

应该改为:and前后+空隔
 {filterStr=filterStr +" and "+ ValueListEditor1->Keys[i+1]+" LIKE '%"+ValueListEditor1->Cells[1][i+1]+"%'";}

热点排行