2013年7月29日 星期一

又一種 ASP.NET 連接 MySQL 方法

  1. 安裝 MySQL
  2. 安裝 MySQL Connector/ODBC
    安裝完成的檢查:控制台\系統管理工具\資料來源 (ODBC)\驅動程式
    看看有沒有成功安裝 (捲軸往下拉,應該會有 Mysql ODBC 5.1 Driver)
  3. 建立資料庫、資料表、灌資料
  4. 開啟 VWD,建立 ASP.NET Web 應用程式
  5. 在方案總管的專案(not方案)上方按右鍵,選擇『加入參考』,切換到『瀏覽』標籤,搜尋位置『C:\Program Files (x86)\MySQL\MySQL Connector Net x.x.x\Assemblies\』,看要進入哪個版本,找到『Mysql.Data.dll』加入
  6. xxx.aspx.vb 加入 Imports MySql.Data.MySqlClient 
    xxx.aspx.cs 加入 using MySql.Data.MySqlClient;
  7. 撰寫程式碼
    成功執行連線與檢索畫面:



VB 參考程式碼 (.NET 不支援 set 和 let 了)

Dim oConn As MySqlConnection
Dim sConnStr As String
Dim oDbAdapter As MySqlDataAdapter
Dim oTable As Data.DataTable

'資料庫連線字串'Database=資料庫
sConnStr = String.Format("Server=localhost;Port=3307;User=rrrrr; Password=pppp; Database=test; Pooling=false")  

'開啟資料庫連線
oConn = New MySqlConnection(sConnStr)
oConn.Open()

'執行 SQL 語法取得資料集
oTable = New Data.DataTable()
oDbAdapter = New MySqlDataAdapter("SELECT * FROM first", oConn)
oDbAdapter.Fill(oTable)

'將資料集餵給 GridView 當作 DataSource (後記得要 Binding)
GridView1.DataSource = oTable
GridView1.DataBind()



C# 參考程式碼:

//建立連接字串與物件
string cnnString = "Server=localhost;Port=3307;Database=test;User=rrrrr;Pwd=pppp";
MySqlConnection cnx = new MySqlConnection(cnnString);
MySqlDataAdapter adapter = new MySqlDataAdapter();

//執行 SQL 語法
string cmdText = "SELECT * FROM first";
MySqlCommand cmd = new MySqlCommand(cmdText, cnx);

//取得資料集
DataSet ds = new DataSet();
adapter.SelectCommand = cmd;
adapter.Fill(ds);

//餵給GridView
GridView1.DataSource = ds;
GridView1.DataBind();

遇到的問題:
  1. 安裝了 Appsev 的 MySQL,會沒有 Connector NET 6.7.4 這個模組,導致在『加入參考』的時候會找不到 Mysql.Data.dll 這個函式庫,因此還是要安裝官方的 MySQL
  2. Appserv 的 MySQL 有提供一個 Web-based 的管理介面,官方的管理介面則是Workbench這個軟體,官方的MySQL叫做 WinMySQLAppserv MySQL就叫做MySQL
  3. 當有 Appserv MySQL時,因為MySQL預設的Port3306,所以 WinMySQL Port會被改成3307

沒有留言:

張貼留言