在做開發的時候,經常需要訪問數據庫的,每次重復的編寫Connection,Command等語句實在是件令人厭煩的事情,大家應該都有過這樣的經歷吧。現在我把自己設計的數據庫操作層與大家分享一下,互相交流學習。我個人比較喜歡把自己的設計方法,設計思想寫出來,互相共享和交流,取長補短,才能更加的完善自己的設計。
在.NET中,數據庫分為三種類型。真的是分為三種數據庫類型嗎?我是猜的,根據.NET提供的數據庫操作類猜的,如果不是,就當我沒說吧。
第一種類型是微軟默認的數據庫類型SQLServer。
第二種類型是Oracle。
第三種類型是OleDb,如Access,MySQL等等。當然,它也支持SQLServer和Oracle,只是沒有那麼好。
我的設計很簡單,因為有三種不同類型的數據庫,所以定義一個接口IDBHelper:
IDBHelper.cs
Code using System; using System.Text; using System.Data; namespace Pride.DBHelper { /// <summary> /// 作者:真的驕傲 /// 時間:2008年9月5日 /// 名稱:數據庫操作層接口 /// </summary> public interface IDBHelper { DataTable ExecuteReader(string connectionString, CommandType cmdType, string cmdText); int ExecuteNoneQuery(string connectionString, CommandType cmdType, string cmdText); object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText); /// <summary> /// 添加SQL語句的參數 /// </summary> /// <param name="sqlParams"> /// SQLParam是一個類,用來保存參數是名和傎 /// </param> void AddParameter(params SQLParam[] sqlParams); /// <summary> /// 清空參數變量列表 /// </summary> void ResetParameter(); } }
方法的名字是根據Command類的三個操作方法來命名,作用也和它們差不多。ExecuteReader方法返回的是DataTable類,可以及時斷開與數據庫的連接,符合盡晚打開盡早關閉的原則。