在一般的情况想在

  1. OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序不支持用于将参数传递到 SQL 语句或存储过程的命名参数。在此情况下,必须使用问号 (?) 占位符顺序必须与存储过程中所定义的参数顺序相匹配,如以下示例所示。SELECT * FROM Customers WHERE CustomerID = ?;在Access中你可以使用@CustomerId也可以使用“?”但是在DB2中你只能使用“?”,使用前者会出现错误提示。

一般的规则如下:

  1. SqlCommand should be '@' character
  2. OleDbCommand or OdbcCommand should be '?' character
  3. OracleCommand should be ':' character