介紹
目前網絡上的SqlHelper的各種改版版本很多,但大多數都是散亂而沒有整體思路,一此只是靜態方法,顯的散亂的代碼讓程序無法很好的維護,有的繁瑣的對象封裝,使程序性能降低、維護復雜。最近發現國外網站的www.dbhlper.org發布了最新的SqlHelper版本,不僅僅代碼精煉,而且體系清晰。用輕松的代碼可支持強大的數據操作。我愛不釋手,特寫此文記下。
使用步驟很簡單:
1、訪問(http://www.dbhelper.org/sqlhelper/)網頁中,下載SqlHelper最新下載包,然后添加引用。
2、配置web.config配置文件
<connectionStrings>
<!--SqlServerHelper連接字符串設定-->
<add connectionString="server=.;uid=sa;pwd=123456;database=yourdatabase" name="SqlServerHelper"/>
<!--Oracle連接字符串設定-->
<add connectionString="Data Source=orcl;User Id=system;Password=***;Integrated Security=no" name="OracleHelper"/>
<!--MySql連接字符串設定-->
<add connectionString="server=localhost;uid=root;pwd=123456;database=mysqldatabase" name="MySqlHelper"/>
</connectionStrings>
說明:這些配置信息可以使用繼承SqlServerHelper、OracleHelper、AccessHelper、MySqlHelper的方法重寫其中ConnectionString屬性(在重寫ConnectionString屬性后不需要配置web.config中的connnectionStrings節點了),更改連接字符串,從而通過不同的派生類操作不同的數據庫。
3、在您項目中添加下載包中的www.dbhelper.org.SqlHelper.dll引用,如圖1
圖1
4、編寫SqlHelper調用代碼:
SqlHelper支持多種數據庫包括MySql、SqlServer、Oracle、Access數據庫,后面還可以添加對DB2的支持哦!如果的數據庫是SqlServer,哪么你可以使用SqlServerHelper類,如果是MySql,可以使用MySqlHelper,如果是Access,可以使用AccessHelper。如果是Oracle則可以使用OracleHelper類。下面以.NET愛好者最喜愛的SqlServer示例 :
SqlHelper的書寫風格很多,你可以選擇自己的需求和愛好使用靜態方式或對象方式。各和利弊。選擇情況使用吧!
第一種,靜態方式,靜態方式也是目前應用最多的一種,因為其簡單,所以在寫一個Sql語句時,用一個方法就可以搞定。如果在一個過種時需要多個Sql語句執行時,不然得創建SqlConnection和控制他的傳參,使語句復雜。不然就是每執行一個sql語句讓SqlConnection創建一次,使性能影響。但是在只執行一個簡單的查詢語句時,顯的更簡單,所以這種方式在簡單的執行邏輯面前,受到大家的喜愛!
DataTable dt=SqlServerHelper.ReadTable("select * from table1");
SqlServerHelper.ExecuteNonQuery("insert into [students] values(@student_name,@class)",
SqlServerHelper.CreateInputParameter("@student_name", SqlDbType.NVarChar, 100, txt_student_name_sqlserver.Text),
SqlServerHelper.CreateInputParameter("@class", SqlDbType.NVarChar, 100, txt_class_sqlserver.Text)
);
呵呵,簡單吧,這讓項止顯的代碼又簡單,又清晰,是吧!
第二種:面向對象式編程,其實這種語法也不復雜,只是加個using語句而己:
using (SqlServerHelper helper = new SqlServerHelper())
{
helper.Command.CommandText = "delete from [Students] where stid=@stid";
helper.AddParameter("@stid", SqlDbType.Int, student_id);
helper.Open();
helper.ExecuteNoneQuery();
helper.Command.Parameters.Clear();
helper.Command.CommandText = "select * from [Students]";
return helper.ReadTable();
}
呵呵,這是官方示例代碼中的一部分,語法簡單,呵呵,在一個using語句中執行了delete刪除語句和select查語句。
比如,如果你想執行事務時,可以使用:
using (SqlServerHelper helper = new SqlServerHelper())
{
helper.Command.CommandText = "delete from [Students] where stid=@stid";
helper.AddParameter("@stid", SqlDbType.Int, student_id);
helper.Open();
DbTransaction tran = helper.Connection.BeginTransaction();
helper.Command.Transaction=tran;
try
{
helper.ExecuteNoneQuery();
tran.Rollback();
}
catch { tran.Rollback(); throw; }
}
5、F5、發布運行測試吧!
總結
下載包中有示例源碼,您可以查看其中源碼。簡單的代碼,希望給君帶來愉快的心情!