观自在书院

海纳百川有容则大 壁立千仞无欲则刚

博客园 首页 新随笔 联系 订阅 管理
今天豆腐问我一个操作Access数据库无法更新的问题。查了一个下午才找到原因。汗颜,问题出在OleDbCommand 或 OdbcCommand 中使用参数的时候,有些特殊要求,自己没注意到这些要求。

这些要求包括:

1、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序不支持用于将参数传递到 SQL 语句或存储过程的命名参数。在此情况下,必须使用问号 (?) 占位符,如以下示例所示。SELECT * FROM Customers WHERE CustomerID = ?

2、将参数用于 OleDbCommand 或 OdbcCommand 时,向 Parameters 集合中添加参数的顺序必须与存储过程中所定义的参数顺序相匹配。OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序将存储过程中的参数视为占位符,并且将按顺序使用这些参数值。另外,返回值参数必须是添加到 Parameters 集合中的第一批参数。
因此,向 Parameters 集合添加 Parameter 对象的顺序必须直接对应于该参数的问号占位符的位置

今天所犯的错误就是不小心把参数的顺序跟SQL中参数的顺序不一致造成的。

posted on 2004-03-21 10:52  观自在书院  阅读(563)  评论(0)    收藏  举报