文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OleCommand的SqlText占位符的问题

OleCommand的SqlText占位符的问题

时间:2011-03-09  来源:五年

http://blog.sina.com.cn/s/blog_54b576bb0100anku.html

在使用access数据时,经常使用

string strSql="insert table_name(col1,col2,...,coln) values(@col1,@col2,...,@coln)";

来向数据库插入数据,写法居然是有毛病的,参照msdn,应该改为

string strSql="insert table_name(col1,col2,...,coln) values(?,?,...,?)";

来自msdn的解释:

如果 CommandType 设置为 Text,OLE DB.NET 提供程序不支持将参数传递给 OleDbCommand 调用的 SQL 语句或存储过程的命名参数。在这种情况下,必须使用问号 (?) 占位符。例如:

SELECT * FROM Customers WHERE CustomerID = ?

因此,OleDbParameterCollection 的顺序必须直接对应于参数的问号占位符的位置。

 

NET中SQL的Parameter占位符的使用

在一般的情况想在

  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
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载