1. //数据库操作
  2. public class DataBase
  3. {
  4. private SqlConnection conn;//数据库连接对象
  5.  
  6. #region 打开数据库连接
  7. private void Open()
  8. {
  9. if (conn == null)
  10. {
  11. conn = new SqlConnection();
  12. //conn.ConnectionString = ConfigurationSettings.AppSettings["connString"].ToString();
  13. conn.ConnectionString = ConfigurationManager.ConnectionStrings["connString"].ToString();
  14. conn.Open();
  15. }
  16. else
  17. {
  18. if (conn.State == System.Data.ConnectionState.Closed)
  19. {
  20. conn.Open();
  21. }
  22. }
  23. }
  24. #endregion
  25.  
  26. #region 关闭数据库连接
  27. private void Close()
  28. {
  29. if (conn != null && conn.State == System.Data.ConnectionState.Open)
  30. {
  31. conn.Close();
  32. }
  33. }
  34. #endregion
  35.  
  36. #region 释放连接资源
  37. public void Dispose()
  38. {
  39. if (conn != null)
  40. {
  41. conn.Dispose();
  42. conn = null;
  43. }
  44. }
  45. #endregion
  46.  
  47. #region 传入参数并转换为SqlParameter类型
  48. /// <summary>
  49. /// 转换参数
  50. /// </summary>
  51. /// <param name="ParamName">存储过程名称或命令文本</param>
  52. /// <param name="DbType">参数类型</param></param>
  53. /// <param name="Size">参数大小</param>
  54. /// <param name="Value">参数值</param>
  55. /// <returns>新的 parameter 对象</returns>
  56. public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, Object Value)
  57. {
  58. return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
  59. }
  60.  
  61. /// <summary>
  62. /// 初始化参数值
  63. /// </summary>
  64. /// <param name="ParamName">存储过程名称或命令文本</param>
  65. /// <param name="DbType">参数类型</param>
  66. /// <param name="Size">参数大小</param>
  67. /// <param name="Direction">参数方向</param>
  68. /// <param name="Value">参数值</param>
  69. /// <returns>新的 parameter 对象</returns>
  70. private SqlParameter MakeParam(string ParamName, SqlDbType DbType, int Size, ParameterDirection Direction, object Value)
  71. {
  72. SqlParameter param;
  73. if (Size>)
  74. {
  75. param = new SqlParameter(ParamName, DbType, Size);
  76. }
  77. else
  78. {
  79. param = new SqlParameter(ParamName, DbType);
  80. }
  81. param.Direction = Direction;
  82. if (!(param.Direction == ParameterDirection.Output && Value == null))
  83. {
  84. param.Value = Value;
  85. }
  86.  
  87. return param;
  88. }
  89. #endregion
  90.  
  91. #region 执行参数命令文本(无数据库中数据返回)
  92.  
  93. /// <summary>
  94. /// 执行命令
  95. /// </summary>
  96. /// <param name="procName">命令文本</param>
  97. /// <param name="prams">参数对象</param>
  98. /// <returns></returns>
  99. public int RunProc(string procName, SqlParameter[] prams)
  100. {
  101. SqlCommand cmd = CreateCommand(procName, prams);
  102. cmd.ExecuteNonQuery();
  103. this.Close();
  104. //得到成功执行的返回值
  105. return (int)cmd.Parameters["ReturnValue"].Value;
  106. }
  107.  
  108. /// <summary>
  109. /// 直接执行SQL语句
  110. /// </summary>
  111. /// <param name="procName">命令文本</param>
  112. /// <returns></returns>
  113. public int RunProc(string procName)
  114. {
  115. this.Open();
  116. SqlCommand cmd = new SqlCommand(procName, conn);
  117. int num = cmd.ExecuteNonQuery();
  118. this.Close();
  119. return num;
  120. }
  121.  
  122. #endregion
  123.  
  124. #region 执行参数命令文本(有返回值)
  125.  
  126. /// <summary>
  127. /// 执行查询命令文本,并且返回DataSet数据集
  128. /// </summary>
  129. /// <param name="procName">命令文本</param>
  130. /// <param name="prams">参数对象</param>
  131. /// <param name="tbName">数据表名称</param>
  132. /// <returns></returns>
  133. public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
  134. {
  135. SqlDataAdapter dap = CreateDataAdapter(procName, prams);
  136. DataSet ds = new DataSet();
  137. dap.Fill(ds, tbName);
  138. this.Close();
  139. return ds;
  140. }
  141.  
  142. /// <summary>
  143. /// 执行命令文本,并且返回DataSet数据集
  144. /// </summary>
  145. /// <param name="procName">命令文本</param>
  146. /// <param name="tbName">数据表名称</param>
  147. /// <returns>DataSet</returns>
  148. public DataSet RunProcReturn(string procName, string tbName)
  149. {
  150. SqlDataAdapter dap = CreateDataAdapter(procName, null);
  151. DataSet ds = new DataSet();
  152. dap.Fill(ds, tbName);
  153. return ds;
  154. }
  155.  
  156. #endregion
  157.  
  158. #region 将命令文本添加到SqlDataAdapter
  159.  
  160. /// <summary>
  161. /// 创建一个SqlDataAdapter对象以此来执行命令文本
  162. /// </summary>
  163. /// <param name="procName">命令文本</param>
  164. /// <param name="prams">参数对象</param>
  165. /// <returns></returns>
  166. private SqlDataAdapter CreateDataAdapter(string procName, SqlParameter[] prams)
  167. {
  168. this.Open();
  169. SqlDataAdapter dap = new SqlDataAdapter(procName, conn);
  170. dap.SelectCommand.CommandType = CommandType.Text;// 执行类型:命令文本
  171. if (prams != null)
  172. {
  173. foreach (SqlParameter param in prams)
  174. {
  175. dap.SelectCommand.Parameters.Add(param);// 为查询语句插入参数
  176. }
  177. }
  178.  
  179. //加入返回值
  180. dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
  181. ParameterDirection.ReturnValue, false, , ,
  182. String.Empty, DataRowVersion.Default, null));
  183.  
  184. return dap;
  185. }
  186.  
  187. #endregion
  188.  
  189. #region 将命令文本添加到SqlCommand
  190.  
  191. /// <summary>
  192. /// 创建一个SqlCommand对象以此来执行命令文本
  193. /// </summary>
  194. /// <param name="procName">命令文本</param>
  195. /// <param name="prams"命令文本所需参数</param>
  196. /// <returns>返回SqlCommand对象</returns>
  197. private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
  198. {
  199. this.Open();
  200. SqlCommand cmd = new SqlCommand(procName, conn);
  201. cmd.CommandType = CommandType.Text;// 执行类型:命令文本
  202.  
  203. //一次把参数传入命令文本
  204. if (prams != null)
  205. {
  206. foreach (SqlParameter param in prams)
  207. {
  208. cmd.Parameters.Add(param);
  209. }
  210. }
  211.  
  212. //加入返回参数
  213. cmd.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
  214. ParameterDirection.ReturnValue, false, , ,
  215. string.Empty, DataRowVersion.Default, null));
  216.  
  217. return cmd;
  218. }
  219.  
  220. #endregion
  221. }

ASP.NET DataBase的更多相关文章

  1. asp: AJAX Database

    <% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %> <!DOCTYPE html PUBLIC " ...

  2. ASP与ASP.NET转换Session数据桥的应用

    背景: 现有公司的产品OA是采用ASP早先的技术开发,需要与目前最新的ASP.NET产品进行数据交互的应用.现有的ASP应用程序往往采用“ASP Sessions”,这是一种经典的ASP内置模式,即允 ...

  3. 注入问题0x00

    1.sqlmap遇到MySQL注入可以成功getshell,但是,遇到sqlserver注入未成功getshell. 2.xp_cmdshell 如何 getshell(1433未对外开放). 解决方 ...

  4. SQL2005之SA提权总结

    首先,看看xp_cmdshell存在不,不存在的话先恢复下. Exec sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_confi ...

  5. Server.MapPath()获取本机绝对路径

    1.    Server.MapPath("/")  应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2.Server.MapPath("./&qu ...

  6. OpenStack(0) - Table of Contents

    1. Keystone OpenStack Identity Service2. Starting OpenStack Image Service3. Starting OpenStack Compu ...

  7. Caching Tutorial

    for Web Authors and Webmasters This is an informational document. Although technical in nature, it a ...

  8. 这是一篇SQL注入文章

    目录 注入原理: 1.寻找注入点的方式或注入的地方可能包括. 2.注入点判断方法. 3.注入分类. 数字型: 字符型: 搜索型: XX型(也叫其他型): 4.注入提交方式. 5.注入攻击类型与方式. ...

  9. ASP.NET Core (Database First)

    CREATE DATABASE [EFCore_dbfirst] GO USE [EFCore_dbfirst] GO CREATE TABLE [Blog] ( [BlogId] int NOT N ...

随机推荐

  1. Ubuntu 查看本机的ip

    打开终端中执行:ifconfig -a命令即可,如下图所示白色背景信息即是. 说明: enp0s3 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址 ...

  2. 为 Tomcat 安装 apr

    apr 官方介绍: Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术. APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTT ...

  3. [Mongo] 解决mongoose不支持条件操作符 $gt$gte:$lte$ne $in $all $not

    reference : http://blog.sina.com.cn/s/blog_4df23d840100u25x.html 找到mongoose的安装目录 /usr/local/lib/node ...

  4. 【BZOJ】【1415】【NOI2005】聪聪和可可

    数学期望+记忆化搜索 论文:<浅析竞赛中一类数学期望问题的解决方法>——汤可因  中的第一题…… Orz 黄学长 我实在是太弱,这么简单都yy不出来…… 宽搜预处理有点spfa的感觉= = ...

  5. Informatica 常用组件Lookup之五 转换属性

    查找转换的属性标识数据库源.PowerCenter 如何处理转换,以及它如何处理高速缓存和多项匹配. 创建映射时,为每个查找转换指定属性.创建会话时,您可在会话属性中覆盖某些属性,如每个转换的索引和数 ...

  6. Informatica 常用组件Lookup之二 已连接和未连接的查找

    可以配置一个已连接的查找转换,以从映射管道中直接接收输入:您也可以配置一个未连接的查找转换,以从其它转换的表达式结果中接收输入. 已连接的查找 未连接的查找 直接从管道接收输入值. 从其它转换的 :L ...

  7. 附1 rabbitmq常用命令

    1.rabbitmq的启动和停止 rabbitmq-server (前台启动) rabbitmq-server -detached(后台启动) rabbitmqctl stop(停止) 2.查看rab ...

  8. android.net.Uri 简介 API

    android.net.Uri 简介 public abstract class android.net.Uri extends Object implements Parcelable, Compa ...

  9. layer和3D仿射变换

    1.视图的显示基于图层,通过控制图层同样能控制显示效果,获取当前的视图的layer,并为其增加圆角边框. //设置layer边框的宽度为2 view.layer.borderWidth=; //如果需 ...

  10. POJ 1265:Area

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4725   Accepted: 2135 Description ...