由於項目要求,一個.net mvc登錄注冊的東西網站必須放棄sqlserver數據去使用MySQL數據庫,因此我遇到了一些問題,並找出相應的解決方法,
因為sqlserver跟MySQL的數據引擎不同所以必須引用第三方庫,
第一種:使用MySQLDriverCS.dll,這個第三方庫。
首先我從國內一個軟件下載網站嚇到這個地Dll,拷貝引用后,發現調試的時候,他就會報錯,說已經加載Dll,但是找不到PDB文件,之前也遇到了這種問題,但是沒有去解決,這次是准備把這個問題解決的,我試過重新拷貝引用,后來運行程序起來他還要告訴我還要一個Dll,於是我就去下了那個Dll,引用,發現並沒辦法引用,報錯不是有效的DLL文件,下了很多東西,弄了兩個消失發現然並卵,依舊無法解決這個問題。於是我就放棄這個了DLL。於是我就去利用某度如何使用MySQL數據庫,找到了第二種方法。
第二種:依舊使用第三方庫,MySql.Data.dll這個庫。這次就不這么多事了,我直接就去官網下了DLL,然后直接拷貝,引用,具體教程你們看別人怎么時候的,我這里重點不是說這個。
第三種:通過ODBC訪問MySQL數據庫,具體怎么弄我就沒研究了,應該是好弄得。
這篇文章的重點是,我用C#跟sqlserver數據庫時,有一個sqlcommand的executenonquery方法是用來獲取返回數據判斷是否執行成功的,然后當我實例化sqlcommand對象,調用里面的方法,
我之前用sqlserver一直都是這樣寫的。代碼差不多就是這樣(見下):

上面的代碼定義一個sqlcommand對象,然后對象實例化,調用對象里面executeNonQuery方法,從而獲取到SQL語句執行返回的受影響行數一般都是這樣的處理的吧。
但是當我用MySQLcommand就不同了,我用相同的方法他總是一直提醒我沒有找到對象,提示錯誤,代碼反復的查看一直沒看出有什么問題,我一開始以為是我的語句的問題,一直在某度搜索語句,后來我就換了個方式看看別人代碼是怎么寫的,然后我就看到別人的代碼里面沒有聲明MySQLcommand對象,直接是聲明一個var類型,然后直接實例化MySQLcommand對象。然后我就改了下代碼。(見圖下),於是莫名其妙就好了。不過還是沒找到原因,於是我就想寫這個隨筆記錄下。

至於原因我就不去糾結了,但是我希望有大神幫我指正下,只是什么原因,因為我感覺自己的基礎性知識太差了。求大神科普下,本篇文章純手打,轉載請注明出處
