新聞中心
如果不使用ASP.NET數(shù)據(jù)訪問層,那么你的代碼里會(huì)出現(xiàn)很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……這些類和方法,而且代碼量很大,讓你不勝其煩,而且代碼寫起來,其實(shí)都是體力活,沒有技術(shù)含量。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、寧陜網(wǎng)絡(luò)推廣、小程序制作、寧陜網(wǎng)絡(luò)營(yíng)銷、寧陜企業(yè)策劃、寧陜品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供寧陜建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
每個(gè)項(xiàng)目都要用到ASP.NET數(shù)據(jù)訪問層,我做的也不例外,但是我把數(shù)據(jù)訪問層做成獨(dú)立項(xiàng)目,沒有什么太大的目的,數(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;
- ///
- ///數(shù)據(jù)訪問層,數(shù)據(jù)庫(kù)操作類
- /// summary>
- publicclassDatabase
- {
- publicstaticstringConnectionStrings=ConfigurationManager.
ConnectionStrings["ConnectionStrings"].ConnectionString;- ///
- ///執(zhí)行帶SqlParameter的sql語(yǔ)句,成功返回true,失敗返回false
- /// summary>
- ///<paramnameparamname="sql">sql語(yǔ)句 param>
- ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表 param>
- ///
returns> - publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]Param)
- //執(zhí)行帶SqlParameter的sql語(yǔ)句,返回影響的行數(shù)
- {
- //HttpContext.Current.Response.Write(sql+"
");- 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+"
"+err.StackTrace);- Tran.Rollback();//回滾事務(wù)
- return0;
- }
- }
- }
- ///
- ///執(zhí)行帶SqlParameter的sql,返回DataReader
- /// summary>
- ///<paramnameparamname="sql">sql語(yǔ)句 param>
- ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表 param>
- ///
返回SqlDataReader returns> - 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+"
"+err.StackTrace);- returnnull;
- }
- }
- ///
- ///執(zhí)行帶SqlParameter的sql,返回DataTable
- /// summary>
- ///<paramnameparamname="sql">SQL語(yǔ)句 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+"
");- returndt;
- }
- ///
- ///執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)
- /// summary>
- ///<paramnameparamname="sql">SQL語(yǔ)句 param>
- ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表 param>
- ///
returns> - publicstaticObjectExecuteScalar(stringsql,paramsSqlParameter[]Param)
- //執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)
- {
- //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參數(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;
- }
- }
【編輯推薦】
- C#局部類型介紹
- C#固定指針簡(jiǎn)單介紹
- 淺析C# FTP WebRequest對(duì)象
- C#分部方法的應(yīng)用場(chǎng)景
- 簡(jiǎn)單介紹VB.NET和C#
新聞標(biāo)題:淺談ASP.NET數(shù)據(jù)訪問層
瀏覽路徑:http://www.fisionsoft.com.cn/article/dpsipch.html


咨詢
建站咨詢
