1. 程式人生 > >Asp.net SqlDataSource中使用like,報錯ORA-01722: 無效數字

Asp.net SqlDataSource中使用like,報錯ORA-01722: 無效數字

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