一、基本简介
SqlHelper是一个基于.NETFramework的数据库操作组件。组件中包含数据库操作方法,目前SqlHelper有很多版本,主要以微软一开始发布的SqlHelper类,后面包含进了Enterprise Library开源包中了。还有一个主要版本是dbhelper.org开源的sqlhelper组件,优点是简洁,高性能,不仅仅支持sqlserver,同时支持sqlserver、oracle、access、Mysql数据库,也是一个开源项目,提供免费下载。
SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。
SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用SqlHelper类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。
接下来让我们通过图来进一步了解它
以上主要通过SqlHelper的一些基本方法和注意事项来进行解释,接下来我们进入更深一层的学习:
我感觉这两种书写方法基本上相同,都是通过一组静态方法来封装数据访问功能,只不过面向对象更全面点,加入了引用,操作稍微复杂了点。比如:
静态方式:
//查询语句执行:
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 (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();
}
大家通过对比,看到了两者的区别和联系了吧,另外想想我们的机房收费系统用的是那种方式呢?
这些主要的方法,都需要我们在实践中进一步理解和运用。
注意事项其实就是告诉我们在运用的过程中经常犯的一些错误,避免弯路,站在巨人的肩膀上。
以上只是对SqlHelper一些简单的了解,接下来我们将更深一步的了解。那就是如何写SqlHelper以及如何运用于实践?那就请看下一篇博客。