介绍
目前网络上的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、发布运行测试吧!
总结
下载包中有示例源码,您可以查看其中源码。简单的代码,希望给君带来愉快的心情!