本文章是建立在已經安裝mysql資料庫的前提,預設安裝在c:\program files方法二:安裝資料庫mysql時要選中connector.net 6.9的安裝,將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是案例**。
連線資料庫、運算元據庫,本質是利用資料庫提供的動態鏈結庫mysql.data.dll進行操作。mysql.data.dll提供以下8個類:
(x86)\mysql\connector.net
6.9\assemblies裡v4.0或v4.5中的mysql.data.dll新增到專案的引用。v4.0和v4.5,對應visual studio具體專案 屬性-應用程式-目標框架 裡的.net framework的版本號。
2.建立連線(mysqlconnection類)
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 =
newmysqlconnection
(connetstr)
;try
catch
(mysqlexception ex)
finally
3.捕捉異常(mysqlexception類) 連線錯誤時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)
}
4.增刪查改的**(mysqlcommand類、mysqldatareader類) executereader——用於查詢資料庫。查詢結果是返回mysqldatareader物件,mysqldatareader包含sql語句執行的結果,並提供乙個方法從結果中閱讀一行。executenonquery——用於插入、更新和刪除資料。
executescalar——用於查詢資料時,返回查詢結果集中第一行第一列的值,即只返回乙個值。
(1) 查詢
a.查詢條件固定
string sql=
"select * from user"
;mysqlcommand cmd =
newmysqlcommand
(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 =
newmysqlcommand
(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 =
newmysqlcommand
(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 =
newmysqlcommand
(sql,conn)
;int result =cmd.
executenonquery()
;//3.執行插入、刪除、更改語句。執行成功返回受影響的資料的行數,返回1可做true判斷。執行失敗不返回任何資料,報錯,下面**都不執行
5.事務(mysqltransaction類)
string connetstr =
"server=127.0.0.1;user=root;password=root;database=minecraftdb;"
;mysqlconnection conn =
newmysqlconnection
(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學習。
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...