大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“ASP.NET数据访问层的概念是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET数据访问层的概念是什么”吧!
创新互联是一家专业提供和平企业网站建设,专注与网站设计制作、做网站、H5建站、小程序制作等业务。10年已为和平众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
如果不使用ASP.NET数据访问层,那么你的代码里会出现很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……这些类和方法,而且代码量很大,让你不胜其烦,而且代码写起来,其实都是体力活,没有技术含量。
每个项目都要用到ASP.NET数据访问层,我做的也不例外,但是我把数据访问层做成独立项目,没有什么太大的目的,数据访问层,仅仅做数据访问用,不包含任何逻辑。
以下是自己改进的ASP.NET数据访问层,希望能得到更多人更好的改进建议,谢谢啦。
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Text;
///
///数据访问层,数据库操作类
///summary>
publicclassDatabase
{
publicstaticstringConnectionStrings=ConfigurationManager.
ConnectionStrings["ConnectionStrings"].ConnectionString;///
///执行带SqlParameter的sql语句,成功返回true,失败返回false
///summary>
///<paramnameparamname="sql">sql语句param>
///<paramnameparamname="Param">SqlParameter[]参数列表param>
///
returns> publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]Param)
//执行带SqlParameter的sql语句,返回影响的行数
{
//HttpContext.Current.Response.Write(sql+"
");using(SqlConnectionconn=newSqlConnection(ConnectionStrings))
{
if(conn.State!=ConnectionState.Open)
conn.Open();
SqlTransactionTran=conn.BeginTransaction();//开始事务
SqlCommandcmd=newSqlCommand(sql,conn,Tran);
if(Param!=null)
cmd.Parameters.AddRange(Param);
try
{
intResult=cmd.ExecuteNonQuery();
Tran.Commit();
cmd.Parameters.Clear();
returnResult;
}
catch(Exceptionerr)
{
HttpContext.Current.Response.Write(err.Message+"
"+err.StackTrace);Tran.Rollback();//回滚事务
return0;
}
}
}
///
///执行带SqlParameter的sql,返回DataReader
///summary>
///<paramnameparamname="sql">sql语句param>
///<paramnameparamname="Param">SqlParameter[]参数列表param>
///
返回SqlDataReaderreturns> publicstaticSqlDataReaderExecuteReader(stringsql,paramsSqlParameter[]Param)
//执行带SqlParameter的sql,返回DataReader
{
SqlConnectionconn=newSqlConnection(ConnectionStrings);
SqlCommandcmd=newSqlCommand(sql,conn);
if(Param!=null)
cmd.Parameters.AddRange(Param);
if(conn.State!=ConnectionState.Open)
conn.Open();
try
{
SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
returndr;
}
catch(Exceptionerr)
{
conn.Close();
HttpContext.Current.Response.Write(err.Message+"
"+err.StackTrace);returnnull;
}
}
///
///执行带SqlParameter的sql,返回DataTable
///summary>
///<paramnameparamname="sql">SQL语句param>
///<paramnameparamname="Param">SqlParameter[]参数列表param>
publicstaticDataTableGetDataTable(stringsql,paramsSqlParameter[]Param)
//执行带SqlParameter的sql,返回DataTable
{
SqlConnectionconn=newSqlConnection(ConnectionStrings);
DataTabledt=newDataTable();
SqlDataAdapterda=newSqlDataAdapter(sql,conn);
if(Param!=null)
da.SelectCommand.Parameters.AddRange(Param);
SqlCommandBuildercb=newSqlCommandBuilder(da);
da.Fill(dt);
conn.Close();
//HttpContext.Current.Response.Write(sql+"
");returndt;
}
///
///执行带SqlParameter的sql,返回查询结果***行***列的数据
///summary>
///<paramnameparamname="sql">SQL语句param>
///<paramnameparamname="Param">SqlParameter[]参数列表param>
///
returns> publicstaticObjectExecuteScalar(stringsql,paramsSqlParameter[]Param)
//执行带SqlParameter的sql,返回查询结果***行***列的数据
{
//HttpContext.Current.Response.Write(sql+"
");using(SqlConnectionconn=newSqlConnection(ConnectionStrings))
{
if(conn.State!=ConnectionState.Open)
conn.Open();
SqlTransactionTran=conn.BeginTransaction();
SqlCommandcmd=newSqlCommand(sql,conn,Tran);
if(Param!=null)
cmd.Parameters.AddRange(Param);
try
{
objectResult=cmd.ExecuteScalar();
cmd.Parameters.Clear();
Tran.Commit();
returnResult;
}
catch(Exceptionerr)
{
HttpContext.Current.Response.Write(err.Message+"
"+err.StackTrace);Tran.Rollback();
returnnull;
}
}
}
///
///生成SqlParameter参数
///summary>
///<paramnameparamname="ParamName">参数名param>
///<paramnameparamname="paramType">参数类型param>
///<paramnameparamname="ParamValue">参数的值param>
publicstaticSqlParameterGetParameter
(stringParamName,SqlDbTypeparamType,ObjectParamValue)//生成SqlParameter参数
{
SqlParameterparam=newSqlParameter(ParamName,paramType);
param.Value=ParamValue;
returnparam;
}
}
到此,相信大家对“ASP.NET数据访问层的概念是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!