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]+"%'";}