Asp.net SqlDataSource中使用like,报错ORA-01722: 无效数字

来源:互联网 发布:python复制文件 编辑:程序博客网 时间:2024/05/10 01:54

   以前在asp.net中,没有使用过SqlDataSource来连接不同数据库,首次尝试却问题多多,这里将问题记录下来,以便后面的朋友参考,更快的解决问题

   1,ORA-00936: 缺少表达式 , 这里主要是语法不清楚所造成的!

SqlDataSource 连接sql server数据库时 SelectCommand="select  * from tablename where id= @id"

                        连接oracle数据库时  SelectCommand="select  * from tablename where id= :id" 

   问题解决: 主要连接到不同数据库时候,参数传递的写法也会不同.

 

 

   2,ORA-01722: 无效数字,

主要是在使用SqlDataSource 连接数据库,使用LIKE语句查询的时候,遇到这样的错误。

SqlDataSource 连接sql server数据库时 SelectCommand="select  * from tablename where name like '%' + @id + '%' "

                        连接oracle数据库时  SelectCommand="select  * from tablename where name like '%'||:id||'%' " 

   问题解决: 主要连接到不同数据库时候,连接字符的写法不同。

如果是在后台,通过参数,来拼接SQL字符串的时候,就会很少遇到这样的问题,使用SqlDataSource真的不方便调试语法错误。

 

 

   3,还有个蛮有意思的错误是,<asp:SqlDataSource  />  连接中,不写ProviderName,会默认连接到Sql Server证据库,ConnectionString为连接到Oracle中,就需要将ProviderName属性也添加上,ProviderName="System.Data.OracleClient"