关于DataAdapter配置向导有关问题。@ 变成

关于DataAdapter配置向导问题。@ 变成 ?
原文   http://blog.joycode.com/saucer/articles/77807.aspx

SELECT   ProductID,   ProductName,   SupplierID,   CategoryID,   QuantityPerUnit,   UnitPrice,  
UnitsInStock,   UnitsOnOrder,   ReorderLevel,   Discontinued  
FROM   Products  
WHERE   CategoryID   =   @CategoryID  

为什么在   where   这一句中写成   CategoryID   =   @CategoryID   时VS就报错  
"无法完成延迟准备。 "  
"未能准备语句。   "
"必须声明标量变量“@CategoryID”   "

当执行   查询生成器时   WHERE   CategoryID   =   @CategoryID   自动变成  
WHERE   (CategoryID   =   ?)  

请问这是为什么呢?

------解决方案--------------------
参数传递的使用不太一样

OleDb = ?
ADO.NET = @名称
------解决方案--------------------
上面第二个换成 SqlClient