您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“ASP.NET數(shù)據(jù)訪問層的概念是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“ASP.NET數(shù)據(jù)訪問層的概念是什么”吧!
如果不使用ASP.NET數(shù)據(jù)訪問層,那么你的代碼里會出現(xiàn)很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……這些類和方法,而且代碼量很大,讓你不勝其煩,而且代碼寫起來,其實都是體力活,沒有技術(shù)含量。
每個項目都要用到ASP.NET數(shù)據(jù)訪問層,我做的也不例外,但是我把數(shù)據(jù)訪問層做成獨立項目,沒有什么太大的目的,數(shù)據(jù)訪問層,僅僅做數(shù)據(jù)訪問用,不包含任何邏輯。
以下是自己改進(jìn)的ASP.NET數(shù)據(jù)訪問層,希望能得到更多人更好的改進(jìn)建議,謝謝啦。
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>
///數(shù)據(jù)訪問層,數(shù)據(jù)庫操作類
///summary>
publicclassDatabase
{
publicstaticstringConnectionStrings=ConfigurationManager.
ConnectionStrings["ConnectionStrings"].ConnectionString;///<summary>
///執(zhí)行帶SqlParameter的sql語句,成功返回true,失敗返回false
///summary>
///<paramnameparamname="sql">sql語句param>
///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param>
///<returns>returns>
publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]Param)
//執(zhí)行帶SqlParameter的sql語句,返回影響的行數(shù)
{
//HttpContext.Current.Response.Write(sql+"<br>");
using(SqlConnectionconn=newSqlConnection(ConnectionStrings))
{
if(conn.State!=ConnectionState.Open)
conn.Open();
SqlTransactionTran=conn.BeginTransaction();//開始事務(wù)
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+"<br>"+err.StackTrace);
Tran.Rollback();//回滾事務(wù)
return0;
}
}
}
///<summary>
///執(zhí)行帶SqlParameter的sql,返回DataReader
///summary>
///<paramnameparamname="sql">sql語句param>
///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param>
///<returns>返回SqlDataReaderreturns>
publicstaticSqlDataReaderExecuteReader(stringsql,paramsSqlParameter[]Param)
//執(zhí)行帶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+"<br>"+err.StackTrace);
returnnull;
}
}
///<summary>
///執(zhí)行帶SqlParameter的sql,返回DataTable
///summary>
///<paramnameparamname="sql">SQL語句param>
///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param>
publicstaticDataTableGetDataTable(stringsql,paramsSqlParameter[]Param)
//執(zhí)行帶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+"<br>");
returndt;
}
///<summary>
///執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)
///summary>
///<paramnameparamname="sql">SQL語句param>
///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param>
///<returns>returns>
publicstaticObjectExecuteScalar(stringsql,paramsSqlParameter[]Param)
//執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)
{
//HttpContext.Current.Response.Write(sql+"<br>");
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+"<br>"+err.StackTrace);
Tran.Rollback();
returnnull;
}
}
}
///<summary>
///生成SqlParameter參數(shù)
///summary>
///<paramnameparamname="ParamName">參數(shù)名param>
///<paramnameparamname="paramType">參數(shù)類型param>
///<paramnameparamname="ParamValue">參數(shù)的值param>
publicstaticSqlParameterGetParameter
(stringParamName,SqlDbTypeparamType,ObjectParamValue)//生成SqlParameter參數(shù)
{
SqlParameterparam=newSqlParameter(ParamName,paramType);
param.Value=ParamValue;
returnparam;
}
}
到此,相信大家對“ASP.NET數(shù)據(jù)訪問層的概念是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。