新聞中心
此文章主要向大家描述的是在.NET訪問MySQL數(shù)據(jù)庫的實際操作過程中積累的經(jīng)驗漫談, 我們是以例子的方式來引出本文的核心問題,以下就是文章的詳細內(nèi)容描述,望大家在瀏覽之后會有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、泰來網(wǎng)站維護、網(wǎng)站推廣。
在.NET中要訪問MySQL數(shù)據(jù)庫,我采用的是MySQL官方提供的.NET connector,此驅(qū)動只需要下載即可使用:http://dev.MySQL.com/downloads/connector/net/1.0.html
在使用中積累了幾點經(jīng)驗:
1)使用Parameter參數(shù)形式提交Command時必須要把"@"號換成"?"號,這一點讓我困惑了一天,只是不明白MySQL數(shù)據(jù)庫為何要搞特殊呢,象MS、ODP.NET for Oracle、OleDb等方式,都是用"@"號的。
例子如下:
- string connstr=Setting.Instance().GetConnectionString("MySQL");
- MySQLConnection conn =new MySQLConnection(connstr);
- conn.Open();
- string query = "insert into myfirst(Id,Name) values(?Id,?Name)";
- MySQLCommand cmd = new MySQLCommand(query, conn);
- MySQLParameter para1=new MySQLParameter("?Id",DbType.Int32);
這里要注意必須要用?號
- MySQLParameter para2=new MySQLParameter("?Name",DbType.String);
這里要注意必須要用?號
- para1.Value=5;
- para2.Value="ddd";
- cmd.Parameters.Add(para1);
- cmd.Parameters.Add(para2);
- cmd.ExecuteNonQuery();
2)在MySQL數(shù)據(jù)庫中也有保留字,為了提供兼容,我必須要找到定界符,好不容易在MySQL的論壇里找到了,使用的定界符是`,這個符號不是單引號,而是鍵盤上數(shù)字1前面的那個“點”,真是害死我啊。
3)MySQL中的TOP功能倒是非常簡單,只需要語句后面使用“l(fā)imit n”就行了,這比ORACLE的那Rownum方便多了。
使用MySQL 的.NET Connector訪問MySQL數(shù)據(jù)庫總體來說還算不錯的,大部分是兼容.NET中的IConnection、ICommand的。
PS:有個不明白就是在.NET Connector中提供一個MySQLDateTime類,不知道這個類具體有什么用,怎么用,在國內(nèi)沒有找到相關(guān)的資料。MySQLDateTime跟System.Date還不兼容,在MySQL論壇上相關(guān)帖子N多。
如果采用String類型的Parameter傳遞給MySQL的DateTime字段會報:Unable to Convert MySQL Date/Time value to System.DateTime 的錯誤。
所有相關(guān)的MySQL數(shù)據(jù)庫的問題可以去:http://forum.MySQL.com/ 論壇看看:)
當前標題:.NET訪問MySQL數(shù)據(jù)庫的經(jīng)驗漫談
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dhjggpj.html


咨詢
建站咨詢
