資料庫程式的運作上,我們常常會需要查出某筆資料取得某項資訊,然後依照此資訊修改另一筆資料,修改完再次取出資料經過一些程式判斷的結果,又再對某個資料表新增或刪除資料.... 一連串複雜的動作需要一次完成,通常這是一瞬間就能處理完成的事,所以不應該會中斷;但是當伺服器相當忙錄時,同時有多位使用者對資料庫要求這一系列的連續動作,那麼動作之間就很可能不是處理同一使用者的請求,取得的資料也可能不是預計的正確資料,所以新增、修改、刪除也可能會出錯,為了使這些工作能夠正確,我們可以使用 Transaction 來確保工作過程無誤,如果工作不順利而發生問題無法正確完成,則退回到工作開始前的狀態。
聲明:本帖可能包含聯盟鏈接,這意味著如果您點擊鏈接併購買我們推薦的產品,我們可能會獲得佣金。點擊這些鏈接不會花費您任何費用,但可以幫助我資助我的開發項目,同時還能推薦優質資源!
2012年2月8日 星期三
C# : 使用 DataSet 管理從 MySQL 查詢出來的資料
在【C# : 對 MySQL 查詢資料】一文中查詢多筆資料所使用到的 MySqlDataReader 會與資料庫建立持續性的連線,所以在查詢完資料後必須明確的 Close();有時候我們會使用多句不同的查詢語句查詢出資料並長時間交互使用資料內容,而且這些資料並不會馬上被更新或是不需要更新,那麼每次都重新查詢或是使這些 MySqlDataReader 都一直維持連線,好像怎麼樣都不是很理想,這時候我們就可以考慮使用 DataSet 建立資料塊。
C# : 使用 Prepare 處理 MySQL 資料的執行請求
在【C# : 對 MySQL 查詢資料】及【C# : 對 MySQL 新增、修改、刪除資料】二篇文章中說明的都是單次請求單次處理的做法,但如果同一句 MySQL 語句需要多次重複請求處理時,或是看起來很類似的多句 MySQL 語句,只有某些欄位值不同而已,要不斷的解析 MySQL 語句再處理,並不是好的做法,這種狀況我們就可以考慮使用 Prepare,不用每次都解析 MySQL 語句再做處理,只需要在 Prepare 時解析,之後只要不斷改變欄位值重新處理就好了。
C# : 使用 Parameters 處理 MySQL 語句
通常在程式中的 MySQL 語句,我們都是使用一般字串與變數直接組合而成,而這個變數值有時候是使用者從 client 端的表單傳送過來的,此時,如果某些防護未顧慮到,使用者輸入錯誤字元或是利用單引號、分號等特殊字元,將可輕易的中斷原本的 MySQL 語句,進而自行輸入其它語句來對資料庫做其它操作,這將可能發生執行期錯誤,甚至危害到系統。
2012年2月7日 星期二
C# : 對 MySQL 新增、修改、刪除資料
對 MySQL 新增、修改、刪除資料都是使用 MySqlCommand 的 ExecuteNonQuery() 執行後回傳影響筆數,主要是送出的 MySQL 不同的差別而已。
C# : 對 MySQL 查詢資料
可以使用 MySqlCommand 的 ExecuteScalar() 直接查詢單筆資料的單一欄位結果值,也可以使用 MySqlCommand 的 ExecuteReader() 取得多筆資料並獲得欄位數、欄位名稱、資料型態等訊息。
C# : 與 MySQL 連接
大部份擅長寫 PHP 的程式人員對 MySQL 應該都不陌生,因為在入門時就會學到如何用 Appserv 或 xampp 快速方便的架設好開發環境,而這個環境中使用的資料庫就是 MySQL,但是學 C# 時應該是會從 MSDN 入門,因為是微軟的東西,所以學 C# 的人通常應該是使用 MS SQL,那麼如果要連接 MySQL 的話會不會很麻煩呢?其實也很容易,只要到 MySQL 官網下載 Connector/Net (http://dev.mysql.com/downloads/connector/net/)安裝完成後,在專案中加入參考就可以使用了。
訂閱:
文章 (Atom)