浅谈ASP.NET数据访问层

如果不使用ASP.NET数据访问层,那么你的代码里会出现很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……这些类和方法,而且代码量很大,让你不胜其烦,而且代码写起来,其实都是体力活,没有技术含量。

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站制作、宁陕网络推广、小程序制作、宁陕网络营销、宁陕企业策划、宁陕品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供宁陕建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

每个项目都要用到ASP.NET数据访问层,我做的也不例外,但是我把数据访问层做成独立项目,没有什么太大的目的,数据访问层,仅仅做数据访问用,不包含任何逻辑。

以下是自己改进的ASP.NET数据访问层,希望能得到更多人更好的改进建议,谢谢啦。

 
 
 
  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. /// 
  13. ///数据访问层,数据库操作类  
  14. /// summary> 
  15. publicclassDatabase  
  16. {  
  17. publicstaticstringConnectionStrings=ConfigurationManager.
    ConnectionStrings["ConnectionStrings"].ConnectionString;  
  18. /// 
  19. ///执行带SqlParameter的sql语句,成功返回true,失败返回false  
  20. /// summary> 
  21. ///<paramnameparamname="sql">sql语句 param> 
  22. ///<paramnameparamname="Param">SqlParameter[]参数列表 param> 
  23. /// returns> 
  24. publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]Param)
  25. //执行带SqlParameter的sql语句,返回影响的行数  
  26. {  
  27. //HttpContext.Current.Response.Write(sql+"
    ");  
  28. using(SqlConnectionconn=newSqlConnection(ConnectionStrings))  
  29. {  
  30. if(conn.State!=ConnectionState.Open)  
  31. conn.Open();  
  32. SqlTransactionTran=conn.BeginTransaction();//开始事务  
  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+"
    "+err.StackTrace);  
  46. Tran.Rollback();//回滚事务  
  47. return0;  
  48. }  
  49. }  
  50. }  
  51.  
  52. /// 
  53. ///执行带SqlParameter的sql,返回DataReader  
  54. /// summary> 
  55. ///<paramnameparamname="sql">sql语句 param> 
  56. ///<paramnameparamname="Param">SqlParameter[]参数列表 param> 
  57. ///返回SqlDataReader returns> 
  58. publicstaticSqlDataReaderExecuteReader(stringsql,paramsSqlParameter[]Param)
  59. //执行带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+"
    "+err.StackTrace);  
  78. returnnull;  
  79. }  
  80. }  
  81.  
  82. /// 
  83. ///执行带SqlParameter的sql,返回DataTable  
  84. /// summary> 
  85. ///<paramnameparamname="sql">SQL语句 param> 
  86. ///<paramnameparamname="Param">SqlParameter[]参数列表 param> 
  87. publicstaticDataTableGetDataTable(stringsql,paramsSqlParameter[]Param)
  88. //执行带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+"
    ");  
  99. returndt;  
  100. }  
  101.  
  102. /// 
  103. ///执行带SqlParameter的sql,返回查询结果***行***列的数据  
  104. /// summary> 
  105. ///<paramnameparamname="sql">SQL语句 param> 
  106. ///<paramnameparamname="Param">SqlParameter[]参数列表 param> 
  107. /// returns> 
  108. publicstaticObjectExecuteScalar(stringsql,paramsSqlParameter[]Param)
  109. //执行带SqlParameter的sql,返回查询结果***行***列的数据  
  110. {  
  111. //HttpContext.Current.Response.Write(sql+"
    ");  
  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+"
    "+err.StackTrace);  
  130. Tran.Rollback();  
  131. returnnull;  
  132. }  
  133. }  
  134. }  
  135.  
  136. /// 
  137. ///生成SqlParameter参数  
  138. /// summary> 
  139. ///<paramnameparamname="ParamName">参数名 param> 
  140. ///<paramnameparamname="paramType">参数类型 param> 
  141. ///<paramnameparamname="ParamValue">参数的值 param> 
  142. publicstaticSqlParameterGetParameter
    (stringParamName,SqlDbTypeparamType,ObjectParamValue)
  143. //生成SqlParameter参数  
  144. {  
  145. SqlParameterparam=newSqlParameter(ParamName,paramType);  
  146. param.Value=ParamValue;  
  147. returnparam;  
  148. }  

【编辑推荐】

  1. C#局部类型介绍
  2. C#固定指针简单介绍
  3. 浅析C# FTP WebRequest对象
  4. C#分部方法的应用场景
  5. 简单介绍VB.NET和C#

文章标题:浅谈ASP.NET数据访问层
文章地址:http://www.hantingmc.com/qtweb/news44/401394.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联