如果您使用 mySQL或是 Oracle搭配 ASP.NET 的 SqlDataSource 小精靈
第一個會遇見的錯誤是什麼?
該怎麼防範與修正呢?
他們兩種資料庫的「參數」寫法,跟SQL Server有何不同?
希望這兩個範例對您有幫助。
要使用Oracle可以到原廠網站下載,他們也有 Express版了
兩套軟體是撰寫 .NET必備的
第一,Oracle Database Express Edition 11g Release 2 (2011 九月)
http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
第二,同一頁的下方,就有Visual Studio的套件,
Oracle Developer Tools for Visual Studio .NET
安裝過程中,請注意自己的 系統管理員密碼(自己填寫時不要忘記!)
安裝完成後,登入帳號為SYSTEM,密碼是你自己設定的。
接下來,第二套軟體 for Visual Studio & .NET
安裝到最後需要填寫資料庫的資料
如果真的還不會跑,可能要調整您的 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 "DEMO_CUSTOMERS" WHERE "CUSTOMER_ID" = ?"
ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM "DEMO_CUSTOMERS""
UpdateCommand="UPDATE "DEMO_CUSTOMERS" SET "CUST_FIRST_NAME" = ? WHERE "CUSTOMER_ID" = ?">
<asp:Parameter Name="CUST_FIRST_NAME" Type="String" />
<asp:Parameter Name="CUSTOMER_ID" Type="Decimal" />
</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">
Oracle 請使用 :參數名稱
mySQL請用 ?參數名稱
SQL Server請用 @參數名稱
Access請用 ? (不搭配參數名稱,只有 ?符號)
因為圖片無法轉貼過來,完整內容請參閱
Oracle 與 ASP.NET SqlDataSource -- 錯誤訊息 ORA-00911: invalid character
https://dotblogs.com.tw/mis2000lab/archive/2014/04/01/oracle_asp-net_sqldatasource_ora-00911_invalid_character.aspx
如果您使用 mySQL
首先,我們先到 MySQL官方網站,下載相關軟體。
http://dev.mysql.com/downloads/windows/
我建議下載MySQL Installer大約有255MB
會有MySQL / ODBC / .NET Conector與相關的軟體 for Windows
安裝之後,您可以輸入管理者(root)的帳號與密碼
也可以輸入個人用戶的帳號與密碼,我設定一個 test帳號(密碼也相同)
使用 SqlDataSource的「進階」按鈕,產生新增、刪除、修改的SQL指令以後,
執行時出現以下的錯誤畫面
錯誤訊息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[test_table]' at line 1 「
回頭看一下HTML檔,發現 SqlDataSource在資料表、欄位都加上 [ ] 符號
MySQL不允許這樣做
修正後即正常!
因為圖片無法轉貼過來,完整內容請參閱
ASP.NET(Visual Studio) -- SqlDataSource 與 MySQL的設定與錯誤解決
https://dotblogs.com.tw/mis2000lab/archive/2014/02/17/sqldatasource_mysql_visual_studio_20140217.aspx