溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET數(shù)據(jù)訪問層的概念是什么

發(fā)布時間:2021-07-16 01:26:58 來源:億速云 閱讀:127 作者:chen 欄目:編程語言

本篇內(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)建議,謝謝啦。

  1. usingSystem;  

  2. usingSystem.Data;  

  3. usingSystem.Data.SqlClient;  

  4. usingSystem.Configuration;  

  5. usingSystem.Web;  

  6. usingSystem.Web.Security;  

  7. usingSystem.Web.UI;  

  8. usingSystem.Web.UI.WebControls;  

  9. usingSystem.Web.UI.WebControls.WebParts;  

  10. usingSystem.Web.UI.HtmlControls;  

  11. usingSystem.Text;  

  12. ///<summary> 

  13. ///數(shù)據(jù)訪問層,數(shù)據(jù)庫操作類  

  14. ///summary> 

  15. publicclassDatabase  

  16. {  

  17. publicstaticstringConnectionStrings=ConfigurationManager.
    ConnectionStrings["ConnectionStrings"].ConnectionString;  

  18. ///<summary> 

  19. ///執(zhí)行帶SqlParameter的sql語句,成功返回true,失敗返回false  

  20. ///summary> 

  21. ///<paramnameparamname="sql">sql語句param> 

  22. ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param> 

  23. ///<returns>returns> 

  24. publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]Param)

  25. //執(zhí)行帶SqlParameter的sql語句,返回影響的行數(shù)  

  26. {  

  27. //HttpContext.Current.Response.Write(sql+"<br>");  

  28. using(SqlConnectionconn=newSqlConnection(ConnectionStrings))  

  29. {  

  30. if(conn.State!=ConnectionState.Open)  

  31. conn.Open();  

  32. SqlTransactionTran=conn.BeginTransaction();//開始事務(wù)  

  33. SqlCommandcmd=newSqlCommand(sql,conn,Tran);  

  34. if(Param!=null)  

  35. cmd.Parameters.AddRange(Param);  

  36. try  

  37. {  

  38. intResult=cmd.ExecuteNonQuery();  

  39. Tran.Commit();  

  40. cmd.Parameters.Clear();  

  41. returnResult;  

  42. }  

  43. catch(Exceptionerr)  

  44. {  

  45. HttpContext.Current.Response.Write(err.Message+"<br>"+err.StackTrace);  

  46. Tran.Rollback();//回滾事務(wù)  

  47. return0;  

  48. }  

  49. }  

  50. }  

  51.  

  52. ///<summary> 

  53. ///執(zhí)行帶SqlParameter的sql,返回DataReader  

  54. ///summary> 

  55. ///<paramnameparamname="sql">sql語句param> 

  56. ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param> 

  57. ///<returns>返回SqlDataReaderreturns> 

  58. publicstaticSqlDataReaderExecuteReader(stringsql,paramsSqlParameter[]Param)

  59. //執(zhí)行帶SqlParameter的sql,返回DataReader  

  60. {  

  61. SqlConnectionconn=newSqlConnection(ConnectionStrings);  

  62. SqlCommandcmd=newSqlCommand(sql,conn);  

  63. if(Param!=null)  

  64. cmd.Parameters.AddRange(Param);  

  65. if(conn.State!=ConnectionState.Open)  

  66. conn.Open();  

  67.  

  68. try  

  69. {  

  70. SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);  

  71. cmd.Parameters.Clear();  

  72. returndr;  

  73. }  

  74. catch(Exceptionerr)  

  75. {  

  76. conn.Close();  

  77. HttpContext.Current.Response.Write(err.Message+"<br>"+err.StackTrace);  

  78. returnnull;  

  79. }  

  80. }  

  81.  

  82. ///<summary> 

  83. ///執(zhí)行帶SqlParameter的sql,返回DataTable  

  84. ///summary> 

  85. ///<paramnameparamname="sql">SQL語句param> 

  86. ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param> 

  87. publicstaticDataTableGetDataTable(stringsql,paramsSqlParameter[]Param)

  88. //執(zhí)行帶SqlParameter的sql,返回DataTable  

  89. {  

  90. SqlConnectionconn=newSqlConnection(ConnectionStrings);  

  91. DataTabledt=newDataTable();  

  92. SqlDataAdapterda=newSqlDataAdapter(sql,conn);  

  93. if(Param!=null)  

  94. da.SelectCommand.Parameters.AddRange(Param);  

  95. SqlCommandBuildercb=newSqlCommandBuilder(da);  

  96. da.Fill(dt);  

  97. conn.Close();  

  98. //HttpContext.Current.Response.Write(sql+"<br>");  

  99. returndt;  

  100. }  

  101.  

  102. ///<summary> 

  103. ///執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)  

  104. ///summary> 

  105. ///<paramnameparamname="sql">SQL語句param> 

  106. ///<paramnameparamname="Param">SqlParameter[]參數(shù)列表param> 

  107. ///<returns>returns> 

  108. publicstaticObjectExecuteScalar(stringsql,paramsSqlParameter[]Param)

  109. //執(zhí)行帶SqlParameter的sql,返回查詢結(jié)果***行***列的數(shù)據(jù)  

  110. {  

  111. //HttpContext.Current.Response.Write(sql+"<br>");  

  112. using(SqlConnectionconn=newSqlConnection(ConnectionStrings))  

  113. {  

  114. if(conn.State!=ConnectionState.Open)  

  115. conn.Open();  

  116. SqlTransactionTran=conn.BeginTransaction();  

  117. SqlCommandcmd=newSqlCommand(sql,conn,Tran);  

  118. if(Param!=null)  

  119. cmd.Parameters.AddRange(Param);  

  120. try  

  121. {  

  122. objectResult=cmd.ExecuteScalar();  

  123. cmd.Parameters.Clear();  

  124. Tran.Commit();  

  125. returnResult;  

  126. }  

  127. catch(Exceptionerr)  

  128. {  

  129. HttpContext.Current.Response.Write(err.Message+"<br>"+err.StackTrace);  

  130. Tran.Rollback();  

  131. returnnull;  

  132. }  

  133. }  

  134. }  

  135.  

  136. ///<summary> 

  137. ///生成SqlParameter參數(shù)  

  138. ///summary> 

  139. ///<paramnameparamname="ParamName">參數(shù)名param> 

  140. ///<paramnameparamname="paramType">參數(shù)類型param> 

  141. ///<paramnameparamname="ParamValue">參數(shù)的值param> 

  142. publicstaticSqlParameterGetParameter
    (stringParamName,SqlDbTypeparamType,ObjectParamValue)

  143. //生成SqlParameter參數(shù)  

  144. {  

  145. SqlParameterparam=newSqlParameter(ParamName,paramType);  

  146. param.Value=ParamValue;  

  147. returnparam;  

  148. }  

到此,相信大家對“ASP.NET數(shù)據(jù)訪問層的概念是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI