Oracle 與 ASP.NET SqlDataSource -- 錯誤訊息 ORA-00911: invalid character

ASP.NET使用 Oracle DB常見的錯誤 --

SqlDataSource在「進階」按鈕產生的SQL指令,會產生錯誤
錯誤訊息 ORA-00911: invalid character



 

 

要使用Oracle可以到原廠網站下載,他們也有 Express版了
 
兩套軟體是撰寫 .NET必備的
 
 
第二,同一頁的下方,就有Visual Studio的套件,
 
 
 
安裝過程中,請注意自己的 系統管理員密碼(自己填寫時不要忘記!)
 
安裝完成後,登入帳號為SYSTEM,密碼是你自己設定的。
 
 
 
接下來,第二套軟體 for Visual Studio & .NET
 
安裝到最後需要填寫資料庫的資料,下圖僅供參考:
 
      
 
 
完成後,您可以透過 Web介面登入  Oracle
 
    登入帳號為SYSTEM,密碼是你自己設定的。
 
    新增一個自己的帳號
 
    裡面也內建一些DEMO用的資料庫範例,類似北風資料庫的訂單系統
 
    
 
 
 
========================================================================
 
撰寫 ASP.NET時,如果用簡單的精靈步驟,GridView + SqlDataSource
 
一開始的連線字串,可能是最容易卡關的地方。
 
其實不難,資料都在「您剛剛安裝DB時,填寫(設定)過了」。
 
 
    
 
 
如果真的還不會跑,可能要調整您的 Windows Firewall(防火牆),
 
因為Oracle DB 預設使用的 Port 1521 & 1522
 
 
========================================================================
 
 
SqlDataSource在「進階」按鈕產生的SQL指令,會產生錯誤
 
錯誤訊息 ORA-00911: invalid character
 
 
SQL指令的部分,必須手動 自行修改一下
 
 
原本SqlDataSource產生的成果:
 
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>" 
            DeleteCommand="DELETE FROM &quot;DEMO_CUSTOMERS&quot; WHERE &quot;CUSTOMER_ID&quot; = ?" 
            ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>" 
            SelectCommand="SELECT * FROM &quot;DEMO_CUSTOMERS&quot;" 
            UpdateCommand="UPDATE &quot;DEMO_CUSTOMERS&quot; SET &quot;CUST_FIRST_NAME&quot; = ? WHERE &quot;CUSTOMER_ID&quot; = ?">
            <UpdateParameters>
                <asp:Parameter Name="CUST_FIRST_NAME" Type="String" />
                <asp:Parameter Name="CUSTOMER_ID" Type="Decimal" />
            </UpdateParameters>
        </asp:SqlDataSource>
        
        
 
自己動手修改以後(可運作):        
 
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>" 
            ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>" 
            SelectCommand="SELECT * FROM DEMO_CUSTOMERS" 
            UpdateCommand="UPDATE DEMO_CUSTOMERS SET CUST_FIRST_NAME = :CUST_FIRST_NAME WHERE CUSTOMER_ID = :CUSTOMER_ID">
 
            <UpdateParameters>
                <asp:Parameter Name="CUST_FIRST_NAME" Type="String" />
                <asp:Parameter Name="CUSTOMER_ID" Type="Decimal" />
            </UpdateParameters>
        </asp:SqlDataSource>

 

 

Oracle 請使用  :參數名稱

mySQL請用  ?參數名稱

SQL Server請用 @參數名稱

Access請用  ?  (不搭配參數名稱,只有 ?符號)

 
關於 mySQL與Oracle參數的寫法,可以參閱這篇文章:
 

 

SqlDataSource 搭配 文章一開始介紹的第二套軟體

產生的 Web.Config 連線字串、連結字串(ConnectionString)

    <add name="OracleConnectionString"
      connectionString="DATA SOURCE=127.0.0.1:1521/XE;PASSWORD=密碼;PERSIST SECURITY INFO=True;USER ID=登入帳號"
      providerName="Oracle.ManagedDataAccess.Client" />

 

      連線字串上的資訊,在您安裝時(你自己)就設定好了

      不要傻傻照著抄寫,謝謝

 

 

 

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估