2015年7月1日 星期三

SqlDataSource 與 MySQL的設定與錯誤解決

SqlDataSource 與 MySQL的設定與錯誤解決
1. SqlDataSource在資料表、欄位都加上 [ ] 符號。MySQL不允許這樣做。
2. MySQL必須寫成 ---- ?參數名稱

首先,我們先到 MySQL官方網站,下載相關軟體。
http://dev.mysql.com/downloads/windows/
 
我建議下載MySQL Installer大約有255MB
會有MySQL / ODBC / .NET Conector與相關的軟體 for Windows
 
 
安裝之後,您可以輸入管理者(root)的帳號與密碼
也可以輸入個人用戶的帳號與密碼,我設定一個 test帳號(密碼也相同)
 
在MySQL管理畫面設定一個 test資料庫
裡面設定(新建)一個資料表,都跟SQL Server大致相同
 
上面完成的設定,有這些資訊(後續連結字串會用到)
主機:localhost
帳號:test
密碼:test
 
============================================================================
 
在Visual Studio裡面,使用 SqlDataSource小精靈的時候,
連結字串要先改用 MySQL安裝上的套件!
 
 
 
 
 
完成上面步驟以後,連結字串(存在 Web.Config檔案內)
 
    <add name="testConnectionString_MySQL"
              connectionString="server=localhost;user id=帳號;password=密碼;persistsecurityinfo=True;database=資料庫"
              providerName="MySql.Data.MySqlClient" />
 
使用 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不允許這樣做
 
 
 
另外,參數的寫法也有錯誤:
 
    MS SQL Server ---- @參數名稱
 
    Access或ODBC ---- ?
 
    MySQL必須寫成 ---- ?參數名稱
 
 
修正如下,一切正常了。
 

============================================================================
上面的錯誤解決方法,是在這裡看見的。特此致謝。
 
 
(點選圖片,可超連結到原網址)
 
Oracle 請使用  :參數名稱
mySQL請用  ?參數名稱
SQL Server請用 @參數名稱
Access請用  ?  (不搭配參數名稱,只有 ?符號)
 
關於 mySQL與Oracle參數的寫法,可以參閱這篇文章:

沒有留言:

張貼留言