因應有些人說我的blog都沒有新增加一些技術的東西,所以這幾天剛好實驗有用到PDA去控制MySQL資料庫,因此寫這個範例來提供給各位,希望都各位在程式上有所幫助,這樣我就值得了,呵呵
好累啊! 寫完這篇花了一小時,再加上今天整天都在整理與找這類的程式,希望大家不要失望!
要寫這支程式的前提:
(1) 請先去MySQL官方網站下載Connector/Net
(2) 先加入「參考」,也就是「MySql.Data.CF.dll」檔案
(3) 程式再加入「using MySql.Data.MySqlClient;」
注意:
(1) 若myConnection.Open();會出現Runtime Error,例外為IndexOutOfRangeException,有可能是您的Connector/Net 版本有問題! 像是就有人遇到自己的MySQL為5.0.9版的,但卻使用Connector/Net 6.x 版的,而造成myConnection.Open();會出現例外IndexOutOfRangeException,而改用了Connector/Net 5.2 後就可以成功連結到MySQL。
(2) 若myConnection.Open();會出現Runtime Error,例外為MissingManifestResourceException,有可能是PDA或模擬器沒連上網路。
(3) 如上第(2)點,另一個可能,只要換PDA去跑程式,結果就不會有這個例外了! 但為什麼會這樣,我也不知道......>"<
PDA上C#搜尋MySQL資料的範例:
private void Button_Click(object sender, EventArgs e)
{
//設定MySQL資料庫IP位址,此為localhost
string DataSource = "localhost";
//設定MySQL資料庫名稱,此為database_name
string Database = "database_name";
//設定連結MySQL資料庫使用者ID,此為admin
string UserID = "admin";
//設定連結MySQL資料庫使用者Password,此為1234567890
string Password = "1234567890";
string myConnectionString = "Data Source=" + DataSource +
";Database=" + Database +
";User ID=" + UserID +
";Password=" + Password;
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
//設定要搜尋MySQL資料庫的語法
//此為SELECT * FROM table
//table為資料表名稱
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM table", myConnection);
myConnection.Open();
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
try
{
searchTextBox.Text = string.Empty;
while (myReader.Read())
{
//myReader.GetString(0)為資料表裡的第一個欄位的資料
//myReader.GetString(1)為資料表裡的第二個欄位的資料
searchTextBox.Text += myReader.GetString(0) + " : " + myReader.GetString(1) + "\r\n";
}
}
finally
{
myReader.Close();
myConnection.Close();
}
}
PDA上C#「新增」、「修改」、「刪除」MySQL資料的範例:
private void Button_Click(object sender, EventArgs e)
{
//設定MySQL資料庫IP位址,此為localhost
string DataSource = "localhost";
//設定MySQL資料庫名稱,此為database_name
string Database = "database_name";
//設定連結MySQL資料庫使用者ID,此為admin
string UserID = "admin";
//設定連結MySQL資料庫使用者Password,此為1234567890
string Password = "1234567890";
string myConnectionString = "Data Source=" + DataSource +
";Database=" + Database +
";User ID=" + UserID +
";Password=" + Password;
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
//若要使用此刪除功能,請先將下面第二列「//」拿掉
//以下這列語法為新增一筆資料進MySQL資料庫
//string sql = "INSERT INTO table (username, phone) VALUES(dreamtails, 0921888888)";
//若要使用此刪除功能,請先將下面第二列「//」拿掉
//以下這列語法為修改username為dreamtails的電話成0921168168到MySQL資料庫
//string sql = "UPDATE table SET phone=0921168168 WHERE username='dreamtails'";
//若要使用此刪除功能,請先將下面第二列「//」拿掉
//以下這列語法為刪除username為dreamtails的資料
//string sql = "DELETE FROM table WHERE username='dreamtails'";
MySqlCommand myCommand = new MySqlCommand(sql);
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
}
MySQL Connectors檔案下載位址:
(1) 首頁 - http://dev.mysql.com/downloads/connector/
(2) Connector/Net - http://dev.mysql.com/downloads/connector/net/
參考資料來源:
(1) Connector/NET Examples and Usage Guide:Using MySqlCommand - http://dev.mysql.com/doc/refman/5.0/en/connector-net-examples-mysqlcommand.html
(2) Connector/NET Examples and Usage Guide - http://dev.mysql.com/doc/refman/5.0/en/connector-net-examples.html
(3) MySQL 官方網站 - http://www.mysql.com/
以上範例若有錯誤,請各位告知或糾正,謝謝~~
一般應用程式 (2)
你的VS是2008的嗎?因為我用2008的有問題
我有問題!!
請問 serchTextBox這個東西是什麼?我的工具箱裡面找不到?還有環境是用智慧型裝置嗎?我想寫的方式是要利用PC上面的PDA來進行C#連接mysql那我要用windows form應用裝置還是智慧型裝置呢??
我是使用vs2008的!
感激不盡ˇ
現下我又有一個問題想要問你~
我的這一行程式碼會出現這樣的錯誤訊息!
myConnection.Open(); 打不開並且會出現"MissingManifestResourceException未處理"
請問你知道是哪方面出了問題嗎?
您好 我在連線上遇到問題了,可否請教一下
您好,您的文章讓我解決了很多問題,但我在連線上遇到了麻煩,狀況是這樣string DataSource = "192.168.1.230";
string Database = "test";
string UserID = "root";
string Password = "";
我從隔壁電腦用資料庫軟體確定可以連進來,VS2008執行時在
myConnection.Open();
這一行一直出現IndexOutOfRangeException,不知是否有相同經驗可以提示一下
環境是VS2008 (192.168.1.230)
CE 5.0 Emulator (192.168.1.231)測試
我是個新手,一直找不到
只要在電腦上用c#連接mysql 要怎麼做?
還有新增 修改 刪除
目前一頭霧水= =
我自己有用成功 但是不知道怎麼用語法抓出資料庫的值來應用
只有成功用視窗連到資料庫 SHOW裡面的資料
小弟這一行 用PDA模擬器執行 按下button會跳出例外
MySqlConnection myConnection = new MySqlConnection(myConnectionString);
但是我又有新問題了
我在WINDOWS專案裡面可以正常使用
但是在智慧型裝置的專案裡用PDA模擬時
卻會出現跟前面小筑大一樣的問題
但是我又有新問題!
程式碼在windowsApplication專案皆能正常
在智慧型專案 Debug通過 模擬pda時 觸發button
會出現無法與遠端網路連接(有用ActiveSync)
裝在實體PDA上(USB接PC)也有同樣問題
這個是因為IP設localhost的問題嗎?
打擾.
不過目前IP只有1個
要找同學再來試試
錯誤出在myConnection.Open();這行
我的MySQL版本是: 5.0.51a
我的做法是在本機電腦連線到遠端固定IP的SERVER抓資料
拜託您了~
我已經試了好幾天不知道該怎麼辦
用的環境是VS2008
自己寫PHP網頁存取操作資料庫內容都沒有問題
也有using MySql.Data.MySqlClient;
拜託您了
感恩~
剛才我確認了一下,
模擬器有連上網了MySQL對外的權限也有開~
我試的MySql.Data.CF.dll版本是5.1
我也有試過5.0的版本
但依然不能用~~~
現在的問題是Reading from the stream has failed.
感謝您
參考網址如下:
http://bugs.mysql.com/bug.php?id=25151
但網頁裡有寫道
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:
http://lists.mysql.com/commits/17173
是我要下載那個補丁包的意思嗎?
但是我一直找不到連結呀~
求求版大可以幫幫我嗎
感恩感恩~
我確定模擬器已經連上網路,但依然會出現下面這些例外
用5.1版的錯誤也是Reading from the stream has failed
用5.2版的錯誤是MissingManifestResourceException
沒關係~還是感謝您的幫忙
謝謝~
我有一些問題,我現在我照著你上面的方式使用,也是遇到BUG,我不管用哪一版的都是會有MissingManifestResourceException的問題!!在connection.open()的地方就是會error,所以想請問一下大大現在是否已經有解決方法了!!
但我想修改,資料庫的資料可以嗎??
而且修改的地方不定 不是各確定目標
請大大是否能幫我一下
馬上練習去~
還有伺服端 是不是要寫一個接收資料的程式
但是我到現在還是不太懂
可以麻煩您告訴我該怎麼做嗎
感謝
想請教有關MYSQL+VS2008用C#測試連線
您好,我看課本用SQL SERVER連線去改MYSQL去測試是否有連線成功,可是他一直出現'mysqlConnection' 不包含使用 '1' 引數的建構函式
不知道為什麼出不來耶..
我使用MySQL Connector Net 6.2.3 & MySQL Server 5.1
可以寄mail給我嗎??
我怕會看不到你回應給我的!
麻煩你了^^(roseate_devil@hotmail.com)
謝謝^^
你好,謝謝你回應我!我剛剛努力再測了一下,,
把using MySql.Data.MySqlClient;
重新再打一次,,
下面的測試連結也重打了,,
結果就對了^^
不知道是不是大小寫的問題呢,,害我卡超久!
不過也謝謝你!
晚點要來測試GridView,,抓資料,,
希望會成功摟,,^_^
可以封裝成cab檔給pda安裝嗎
我封裝都會顯示
"Windows CE 封包精靈發生錯誤。請參閱輸出視窗中的詳細資訊。"
是哪出了問題呢
vs2008
Connector/Net 6.3.5
System.Resources.MissingManifestResourceException 未處理
Message="MissingManifestResourceException"
StackTrace:
於 System.Resources.ResourceManager.InternalGetResourceSet()
於 System.Resources.ResourceManager.InternalGetResourceSet()
於 System.Resources.ResourceManager.InternalGetResourceSet()
於 System.Resources.ResourceManager.GetString()
於 MySql.Data.MySqlClient.Properties.Resources.get_UnableToConnectToHost()
於 MySql.Data.MySqlClient.NativeDriver.Open()
於 MySql.Data.MySqlClient.Driver.Create()
於 MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
於 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
於 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
於 MySql.Data.MySqlClient.MySqlPool.GetConnection()
於 MySql.Data.MySqlClient.MySqlConnection.Open()
於 SmartDeviceProject1.Form1.button1_Click()
於 System.Windows.Forms.Control.OnClick()
於 System.Windows.Forms.Button.OnClick()
於 System.Windows.Forms.ButtonBase.WnProc()
於 System.Windows.Forms.Control._InternalWnProc()
於 Microsoft.AGL.Forms.EVL.EnterMainLoop()
於 System.Windows.Forms.Application.Run()
於 SmartDeviceProject1.Program.Main()
InnerException:
我成功了:)
很感謝你