本文章是建立在已經安裝mysql資料庫的前提,預設安裝在c:\program files (x86)\mysql,建議在安裝時選中connector.net 6.9的安裝,裡面有mysql與c#連線的動態鏈結庫。
幫助文件c:\program files (x86)\mysql\connector.net 6.9\documentation\connectornet.chm是我撰寫此文章的主要依據。其中users guide下,programming是對動態鏈結庫8個類的介紹,tutorial是案例**。
方法一:visual studio,在 專案(右鍵)-管理nuget程式包(n) 然後在瀏覽裡面搜尋mysql.data並進行安裝。
方法二:安裝資料庫mysql時要選中connector.net 6.9的安裝,將c:\program files (x86)\mysql\connector.net 6.9\assemblies裡v4.0或v4.5中的mysql.data.dll新增到專案的引用。v4.0和v4.5,對應visual studio具體專案 屬性-應用程式-目標框架 裡的.net framework的版本號。
using mysql.data.mysqlclient;
string connetstr = "server=127.0.0.1;port=3306;user=root;password=root; database=minecraftdb;";
// server=127.0.0.1/localhost 代表本機,埠號port預設是3306可以不寫
mysqlconnection conn = new mysqlconnection(connetstr);
trycatch (mysqlexception ex)
finally
連線錯誤時mysqlconnection會返回乙個mysqlexception,其中包括2個變數:
message: a message that describes the current exception.
number: the mysql error number. (0: cannot connect to server. 1045: invalid user name and/or password.)
catch (mysqlexception ex)
}executereader——用於查詢資料庫。查詢結果是返回mysqldatareader物件,mysqldatareader包含sql語句執行的結果,並提供乙個方法從結果中閱讀一行。
executenonquery——用於插入、更新和刪除資料。
executescalar——用於查詢資料時,返回查詢結果集中第一行第一列的值,即只返回乙個值。
(1) 查詢
a.查詢條件固定
string sql= "select * from user";
mysqlcommand cmd = new mysqlcommand(sql,conn);
mysqldatareader reader =cmd.executereader();//執行executereader()返回乙個mysqldatareader物件
while (reader.read())//初始索引是-1,執行讀取下一行資料,返回值是bool
b.查詢條件不固定
//string sql = "select * from user where username='"+username+"' and password='"+password+"'"; //我們自己按照查詢條件去組拼
string sql = "select * from user where username=@para1 and password=@para2";//在sql語句中定義parameter,然後再給parameter賦值
mysqlcommand cmd = new mysqlcommand(sql, conn);
cmd.parameters.addwithvalue("para1", username);
cmd.parameters.addwithvalue("para2", password);
mysqldatareader reader = cmd.executereader();
if (reader.read())//如果使用者名稱和密碼正確則能查詢到一條語句,即讀取下一行返回true
c.需要查詢返回乙個值
string sql = "select count(*) from user";
mysqlcommand cmd = new mysqlcommand(sql, conn);
object result=cmd.executescalar();//執行查詢,並返回查詢結果集中第一行的第一列。所有其他的列和行將被忽略。select語句無記錄返回時,executescalar()返回null值
if (result != null)
(2) 插入、刪除、更改
string sql = "insert into user(username,password,registerdate) values('啊寬','123','"+datetime.now+"')";
//string sql = "delete from user where userid='9'";
//string sql = "update user set username='啊哈',password='123' where userid='8'";
mysqlcommand cmd = new mysqlcommand(sql,conn);
int result =cmd.executenonquery();//3.執行插入、刪除、更改語句。執行成功返回受影響的資料的行數,返回1可做true判斷。執行失敗不返回任何資料,報錯,下面**都不執行
string connetstr = "server=127.0.0.1;user=root;password=root;database=minecraftdb;";
mysqlconnection conn = new mysqlconnection(connetstr);
conn.open();//必須開啟通道之後才能開始事務
mysqltransaction transaction = conn.begintransaction();//事務必須在try外面賦值不然catch裡的transaction會報錯:未賦值
console.writeline("已經建立連線");
trycatch (mysqlexception ex)
finally
}
結語:連線資料庫、運算元據庫,本質是利用資料庫提供的動態鏈結庫mysql.data.dll進行操作。動態鏈結庫中的8個類上面常用操作只用到了類1-5,類6-8 的相關操作未涉及, 大家可以去看幫助文件c:\program files (x86)\mysql\connector.net 6.9\documentation\connectornet.chm學習。
ok完事
C 連線MySQL資料庫
下面的 是乙個實現c 連線mysql資料庫的很好的例子 這裡用了建表,插入,檢索,刪表等常用功能 我用vc 6.0生成,已經成功連線了。在vc 6.0中要想把做一下兩步準備工作才可以。1 tools options directories include files中新增c program file...
C 連線 mysql資料庫
最近在學習使用資料庫進行c 開發專案的資料管理。學習了下sql server 和mysql的東西。這兩個比較相似,而且容易上手,準備以後用這個了。首先,使用c 連線資料庫,要有c 和資料庫之間通訊的介面。接下來,就是建立與資料庫的連線了。這裡使用的是連線字串。一開始學習,網上各種材料直接給出了像st...
C 連線MySql資料庫
然後新增mysqldata.dll到c 專案的引用中,然後就可以編寫程式進行資料庫的操作了。3 資料庫操作 insertmysql.csusing system using system.collections using system.linq using system.text using my...