以前在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"