前言:说实话,在这个我真的没有怎么懂得这个是如何做的,在我一头雾水的时候我 还是 尝试去敲打,去理解其中的含义,于是经过一段时间的研究发现,我只是发现了其中的作用,就好像是一种增删改查中的调用数据库中的那一块,主要的重用在于对UI层中需要用到的数据进行一个数据调用的过程,用了之后然后将数据进行保存。
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return adataset.Tables[0];
//获取包含在DataSet中表的集合
}
正文:那么问题就来了,什么是SQLHelper呢?
答:SqlHelper是一个基于.NET Framework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重复的去那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。
好处:sqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。
问:如何实现sqlHelper?
答:先看代码:
public class sqlHelper
{
{
public DataTable ExecuteNonQuery(string cmdTxt, CommandType cmdType, SqlParameter[] paras)
{
string StrDB = System.Configuration.ConfigurationSettings.AppSettings["ConnStr"];//接收来自配置文件的数据
SqlConnection conn = new SqlConnection(StrDB);
//创建数据库的链接
SqlCommand cmd = default(SqlCommand);
//定义命名变量
DataSet adataset = null;
//定义数据适配器,dataset类表示一个存放于内存中数据缓存
SqlDataAdapter adaptor = default(SqlDataAdapter);
//sqlDataAdapter类目的是填充Dataset
cmd = new SqlCommand(cmdTxt, conn);
//在conn上面执行实例化命名变量,并执行语句cmdtype
cmd.CommandType = cmdType;
//命令执行的类型
cmd.Parameters.AddRange(paras);
//命令执行的参数
adaptor = new SqlDataAdapter(cmd);
//初始化SQLDataAdapter类的新实例,用指定的cmd作为SelectCommand的属性
adataset = new DataSet();
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
adaptor.Fill(adataset);
//向adaptor对象中填充查询的数据
}
catch
{
// Interaction.MsgBOx(ex.message);
{
string StrDB = System.Configuration.ConfigurationSettings.AppSettings["ConnStr"];//接收来自配置文件的数据
SqlConnection conn = new SqlConnection(StrDB);
//创建数据库的链接
SqlCommand cmd = default(SqlCommand);
//定义命名变量
DataSet adataset = null;
//定义数据适配器,dataset类表示一个存放于内存中数据缓存
SqlDataAdapter adaptor = default(SqlDataAdapter);
//sqlDataAdapter类目的是填充Dataset
cmd = new SqlCommand(cmdTxt, conn);
//在conn上面执行实例化命名变量,并执行语句cmdtype
cmd.CommandType = cmdType;
//命令执行的类型
cmd.Parameters.AddRange(paras);
//命令执行的参数
adaptor = new SqlDataAdapter(cmd);
//初始化SQLDataAdapter类的新实例,用指定的cmd作为SelectCommand的属性
adataset = new DataSet();
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
adaptor.Fill(adataset);
//向adaptor对象中填充查询的数据
}
catch
{
// Interaction.MsgBOx(ex.message);
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
return adataset.Tables[0];
//获取包含在DataSet中表的集合
}
这是其中查询的代码:
流程:链接——>存储代码空间——>查找定位——>显示
固定格式和try的应用在这里相对重要一些,而其他的几个跟这个的方法相当!
问:SQLHelper常用的几个方法?
答:
ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回SqlDataReader对象,该对象包含由某一命令返回的结果集。
ExecuteDataset。此方法返回DataSet对象,该对象包含由某一命令返回的结果集。
ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。
ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。
结语:
通过我对这SQLHelper的问题然后结合之后自己去找答案我逐渐的明白了SQLHelper是一个封装链接数据的方法,然后将这个方法通过一个接口去实现数据的链接而后会省去大量的重复 的代码,让代码更加简单易懂。
同时通过这种自问自答的学习也是相当的高效的。从不懂到明白,这样我们会记录一个学习的过程,相信过程,我们会变得更好!