For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專(zhuān)心促就業(yè)
在.NET(.NET培訓(xùn) )中訪問(wèn)MySQL(MySQL認(rèn)證 Mysql培訓(xùn) ),很多人采用的是MySQL數(shù)據(jù)庫(kù)(數(shù)據(jù)庫(kù)培訓(xùn) 數(shù)據(jù)庫(kù)認(rèn)證 )官方所提供的.NET connector,對(duì)其當(dāng)然你也可以在相關(guān)的網(wǎng)站找到自己用得比較順手的,以下的文章主要講述的是.NET訪問(wèn)MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn)。
在使用中積累了幾點(diǎn)經(jīng)驗(yàn):
1).NET訪問(wèn)MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn):使用Parameter參數(shù)形式提交Command時(shí)必須要把"@"號(hào)換成"?"號(hào),這一點(diǎn)讓我困惑了一天,只是不明白MySQL為何要搞特殊呢,象MS、ODP.NET for Oracle、OleDb等方式,都
用"@"號(hào)的。
例子如下:
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);
這里要注意必須要用?號(hào)
MySQLParameter para2=new MySQLParameter("?Name",DbType.String);
這里要注意必須要用?號(hào)
para1.Value=5; para2.Value="ddd"; cmd.Parameters.Add(para1); cmd.Parameters.Add(para2); cmd.ExecuteNonQuery();
2).NET訪問(wèn)MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn):在MySQL中也有保留字,為了提供兼容,我必須要找到定界符,好不容易在MySQL的論壇里找到了,使用的定界符是`,這個(gè)符號(hào)不是單引號(hào),而是鍵盤(pán)上數(shù)字1前面的那個(gè)“點(diǎn)”,真是害死我啊。
3).NET訪問(wèn)MySQL數(shù)據(jù)庫(kù)經(jīng)驗(yàn):MySQL中的TOP功能倒是非常簡(jiǎn)單,只需要語(yǔ)句后面使用“l(fā)imit n”就行了,這比ORACLE的那Rownum方便多了。
使用MySQL 的.NET Connector訪問(wèn)MySQL總體來(lái)說(shuō)還算不錯(cuò)的,大部分是兼容.NET中的IConnection、ICommand的。
PS:有個(gè)不明白就是在.NET Connector中提供一個(gè)MySQLDateTime類(lèi),不知道這個(gè)類(lèi)具體有什么用,怎么用,在國(guó)內(nèi)沒(méi)有找到相關(guān)的資料。MySQLDateTime 跟System.Date還不兼容,在MySQL論壇上相關(guān)帖子N多。
如果采用String類(lèi)型的Parameter傳遞給MySQL的DateTime字段會(huì)報(bào):Unable to Convert MySQL Date/Time value to System.DateTime 的錯(cuò)誤。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!