【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类(转)

  1. /// <summary>
  2. /// 数据库访问通用类
  3. /// </summary>
  4. public class SqlHelper
  5. {
  6. private string connectionString;
  7. /// <summary>
  8. /// 设定数据库访问字符串
  9. /// </summary>
  10. public string ConnectionString
  11. {
  12. set { connectionString = value; }
  13. }
  14. /// <summary>
  15. /// 构造函数
  16. /// </summary>
  17. /// <param name="connectionString">数据库访问字符串</param>
  18. public SqlHelper(string connectionString)
  19. {
  20. this.connectionString = connectionString;
  21. }
  22. /// <summary>
  23. /// 执行一个查询,并返回查询结果
  24. /// </summary>
  25. /// <param name="sql">要执行的sql语句</param>
  26. /// <param name="commandType">要执行的查询语句的类型,如存储过程或者sql文本命令</param>
  27. /// <returns>返回查询结果集</returns>
  28. public DataTable ExecuteDataTable(string sql,CommandType commandType)
  29. {
  30. return ExecuteDataTable(sql, commandType, null);
  31. }
  32. /// <summary>
  33. /// 执行一个查询,并返回结果集
  34. /// </summary>
  35. /// <param name="sql">要执行的sql文本命令</param>
  36. /// <returns>返回查询的结果集</returns>
  37. public DataTable ExecuteDataTable(string sql)
  38. {
  39. return ExecuteDataTable(sql, CommandType.Text, null);
  40. }
  41. /// <summary>
  42. /// 执行一个查询,并返回查询结果
  43. /// </summary>
  44. /// <param name="sql">要执行的sql语句</param>
  45. /// <param name="commandtype">要执行查询语句的类型,如存储过程或者sql文本命令</param>
  46. /// <param name="parameters">Transact-SQL语句或者存储过程参数数组</param>
  47. /// <returns></returns>
  48. public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
  49. {
  50. DataTable data = new DataTable(); //实例化datatable,用于装载查询结果集
  51. using (SqlConnection con = new SqlConnection(connectionString))
  52. {
  53. using (SqlCommand cmd = new SqlCommand(sql, con))
  54. {
  55. cmd.CommandType = commandtype;//设置command的commandType为指定的Commandtype
  56. //如果同时传入了参数,则添加这些参数
  57. if (parameters != null)
  58. {
  59. foreach (SqlParameter parameter in parameters)
  60. {
  61. cmd.Parameters.Add(parameter);
  62. }
  63. }
  64. //通过包含查询sql的sqlcommand实例来实例化sqldataadapter
  65. SqlDataAdapter adapter = new SqlDataAdapter(cmd);
  66. adapter.Fill(data);//填充datatable
  67. }
  68. }
  69. return data;
  70. }
  71. /// <summary>
  72. /// 返回一个SqlDataReader对象的实例
  73. /// </summary>
  74. /// <param name="sql">要执行的SQl查询命令</param>
  75. /// <returns></returns>
  76. public SqlDataReader ExecuteReader(string sql)
  77. {
  78. return ExecuteReader(sql, CommandType.Text, null);
  79. }
  80. /// <summary>
  81. ///
  82. /// </summary>
  83. /// <param name="sql">要执行的sql语句</param>
  84. /// <param name="commandType">要执行查询语句的类型,如存储过程或者SQl文本命令</param>
  85. /// <returns></returns>
  86. public SqlDataReader ExecuteReader(string sql,CommandType commandType)
  87. {
  88. return ExecuteReader(sql, commandType, null);
  89. }
  90. /// <summary>
  91. /// 返回一个sqldatareader对象的实例
  92. /// </summary>
  93. /// <param name="sql"></param>
  94. /// <param name="commandType"></param>
  95. /// <param name="parameters"></param>
  96. /// <returns></returns>
  97. public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
  98. {
  99. SqlConnection con = new SqlConnection(connectionString);
  100. SqlCommand cmd = new SqlCommand(sql, con);
  101. if (parameters != null)
  102. {
  103. foreach (SqlParameter parameter in parameters)
  104. {
  105. cmd.Parameters.Add(parameters);
  106. }
  107. }
  108. con.Open();
  109. //CommandBehavior.CloseConnection参数指示关闭reader对象时关闭与其关联的Connection对象
  110. return cmd.ExecuteReader(CommandBehavior.CloseConnection);
  111. }
  112. /// <summary>
  113. /// 执行一个查询,返回结果集的首行首列。忽略其他行,其他列
  114. /// </summary>
  115. /// <param name="sql">要执行的SQl命令</param>
  116. /// <returns></returns>
  117. public Object ExecuteScalar(string sql)
  118. {
  119. return ExecuteScalar(sql, CommandType.Text, null);
  120. }
  121. /// <summary>
  122. ///
  123. /// </summary>
  124. /// <param name="sql"></param>
  125. /// <param name="commandType"></param>
  126. /// <returns></returns>
  127. public Object ExecuteScalar(string sql, CommandType commandType)
  128. {
  129. return ExecuteScalar(sql, commandType, null);
  130. }
  131. /// <summary>
  132. ///
  133. /// </summary>
  134. /// <param name="sql"></param>
  135. /// <param name="commandType">参数类型</param>
  136. /// <param name="parameters"></param>
  137. /// <returns></returns>
  138. public Object ExecuteScalar(string sql,CommandType commandType, SqlParameter[] parameters)
  139. {
  140. Object result=null;
  141. SqlConnection con=new SqlConnection(connectionString);
  142. SqlCommand cmd=new SqlCommand(sql,con);
  143. cmd.CommandType= commandType;
  144. if(parameters!=null)
  145. {
  146. foreach (SqlParameter parapmeter in parameters)
  147. {
  148. cmd.Parameters.Add(parapmeter);
  149. }
  150. }
  151. con.Open();
  152. result=cmd.ExecuteScalar();
  153. con.Close();
  154. return result;
  155. }
  156. /// <summary>
  157. /// 对数据库进行增删改的操作
  158. /// </summary>
  159. /// <param name="sql">要执行的sql命令</param>
  160. /// <returns></returns>
  161. public int ExecuteNonQuery(string sql)
  162. {
  163. return ExecuteNonQuery(sql, CommandType.Text, null);
  164. }
  165. /// <summary>
  166. /// 数据库进行增删改的操作
  167. /// </summary>
  168. /// <param name="sql">对数据库进行操作的sql命令</param>
  169. /// <param name="commandType">要执行查询语句的类型,如存储过程或者sql文本命令</param>
  170. /// <returns></returns>
  171. public int ExecuteNonQuery(string sql, CommandType commandType)
  172. {
  173. return ExecuteNonQuery(sql, commandType, null);
  174. }
  175. /// <summary>
  176. /// 对数据库进行增删改的操作
  177. /// </summary>
  178. /// <param name="sql">要执行的sql语句</param>
  179. /// <param name="commandType">要执行的查询语句类型,如存储过程或者sql文本命令</param>
  180. /// <param name="parameters">Transact-SQL语句或者存储过程的参数数组</param>
  181. /// <returns></returns>
  182. public int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
  183. {
  184. int count = 0;
  185. SqlConnection con = new SqlConnection(connectionString);
  186. SqlCommand cmd = new SqlCommand(sql, con);
  187. cmd.CommandType = commandType;
  188. if (parameters != null)
  189. {
  190. foreach(SqlParameter parameter in parameters)
  191. {
  192. cmd.Parameters.Add(parameter);
  193. }
  194. }
  195. con.Open();
  196. count = cmd.ExecuteNonQuery();
  197. con.Close();
  198. return count;
  199. }
  200. /// <summary>
  201. /// 返回当前连接的数据库中所有用户创建的数据库
  202. /// </summary>
  203. /// <returns></returns>
  204. public DataTable GetTables()
  205. {
  206. DataTable table = null;
  207. using (SqlConnection con = new SqlConnection(connectionString))
  208. {
  209. con.Open();
  210. table = con.GetSchema("Tables");
  211. }
  212. return table;
  213. }
  214. }
  215. 本文出自 “强子的专栏” 博客,请务必保留此出处http://yisuowushinian.blog.51cto.com/4241271/999324
时间: 2024-10-05 20:37:13

【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类(转)的相关文章

初次开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、目前性能还不够好

继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再

谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些.最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较.其实在很多时候,收费的不一定就比免费的成本更高.因为开发一个网站要使用哪个平台的技术更合适,需要考虑很多种情况(除了开发技术本身,还要考虑人工,开发效率,时间,后续的支持,维护等等),要综合计算成本才行.微软平台本身虽然是收费的,但总体的成

Visual Studio 2015 开发 ASP.NET 5 有何变化?(转)

出处:http://www.cnblogs.com/xishuai/p/visual-studio-2015-preview-asp-net-5-change.html 本篇博文目录: ASP.NET 5 模版 ASP.NET 5 目录结构 前端管理工具 无编译开发 Microsoft Git Provider 智能感知和错误信息 Smart Unit Testing 等待发现... Visual Studio 2015 Preview 版本部分说明: ASP.NET 5 Preview run

Visual Studio 2015 开发 ASP.NET 5

在以往微软发布或更新 Visual Studio 版本时,我们开发 ASP.NET 应用程序,带给我们的变化其实并不是很大,或者说你根本就感受不到变化,你感受到的只是下载安装了几个 G 的 Update 更新包,但这次微软发布更新的 ASP.NET,无疑是巨大的,首先我们来看下 ASP.NET 5 的新功能介绍: Web Forms.MVC 和 Web API 统一编程模型. 无编译开发体验(no-compile),修改代码文件,无需编译,只需要浏览器刷新即可. 无缝云开发支持(Cloud-re

ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以我们首先需要下载安装其最新的RC版本. https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx 安装完毕以后,打开并建立新的Web Application项目: 然后在后一个界面中选择ASP.NET 5 Empty模板: 这里提2个注意点: 要

Visual Studio Code和Docker开发asp.net core和mysql应用

Visual Studio Code和Docker开发asp.net core和mysql应用 .net猿遇到了小鲸鱼,觉得越来越兴奋.本来.net猿只是在透过家里那田子窗看外面的世界,但是看着海峡对岸的苹果园越来越茂盛,实在不想再去做一只宅猿了.于是,.net猿决定搭上小鲸鱼的渡轮到苹果园去看看. .net猿上了小鲸鱼渡轮就先问了一个问题,苹果园上有能用来编写c#代码的和Visual Studio一样强大的IDE么?这时,天空闪过一道Gamma射线,艾瑞克神说,给你一个 Visual Stud

[c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单

前7篇把最基础的消息接收和回复全做完了,  也把高级接口的入口和分拆处理写好了空方法,  此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接口 3.OAuth2.0 网页授权接口 4.生成带参数的二维码接口 5.获取用户地理位置接口 6.获取用户基本信息接口 7.获取关注者列表接口 8.用户分组接口 9.上传下载多媒体文件接口 具体介绍: 1. 语音识别 功能描述:通过语音识别接口,用户发送的语音,将同时给出语音识别出的文本内容. 实用

asp.net 开发时的小问题

最近公司老板让我用asp.net开发公司的小的ERP系统,在用jquery ajax访问aspx.cs文件中的[WebMethod]的静态方法时老是遇到身份验证的错误信息,头疼了好久找不到方法,终于在一个外国的外码分享网站找到了解决的方法,就是把APP_Code里的RouteConfig.cs文件中的 settings.AutoRedirectMode = RedirectMode.Permanent 改为 settings.AutoRedirectMode = RedirectMode.Off

使用 dotnet watch 开发 ASP.NET Core 应用程序

使用 dotnet watch 开发 ASP.NET Core 应用程序 原文:Developing ASP.NET Core applications using dotnet watch作者:Victor Hurdugaci翻译:谢炀(Kiler)校对:刘怡(AlexLEWIS).许登洋(Seay) 介绍 dotnet watch 是一个开发阶段在源文件发生变动的情况下使用 dotnet 命令的工具. 当代码发生变动的时候可以用来执行编译,运行测试,或者发布操作. 在本教程中,我们将使用一个