IDBTransaction.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:IDBTransaction.cs
  5. * 2.功能描述:带有事物的数据库连接
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 张国印 2014/09/01 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Linq;
  14. using System.Text;
  15. namespace Dongke.IBOSS.PRD.Basics.DataAccess
  16. {
  17. /// <summary>
  18. /// 带有事物的数据库连接
  19. /// </summary>
  20. public interface IDBTransaction
  21. {
  22. /// <summary>
  23. /// 事务是否自动提交
  24. /// </summary>
  25. bool AutoCommit { get; set; }
  26. /// <summary>
  27. /// 数据库连接状态
  28. /// </summary>
  29. ConnectionState ConnState { get; }
  30. /// <summary>
  31. /// 对应的数据库连接串信息
  32. /// </summary>
  33. string ConnStr { get; }
  34. /// <summary>
  35. /// 数据库连接对象
  36. /// </summary>
  37. IDbConnection DbConnection { get; set; }
  38. /// <summary>
  39. /// 忽略大小写
  40. /// </summary>
  41. bool IgnoreCase
  42. {
  43. get;
  44. set;
  45. }
  46. /// <summary>
  47. /// SQL执行限定超时
  48. /// </summary>
  49. bool IsCommandTimeout
  50. {
  51. get;
  52. set;
  53. }
  54. /// <summary>
  55. /// 连接数据库
  56. /// </summary>
  57. /// <returns>返回连接状态</returns>
  58. ConnectionState Connect();
  59. /// <summary>
  60. /// 启动数据库事务
  61. /// </summary>
  62. /// <returns>返回是否成功</returns>
  63. bool CreateTransaction();
  64. /// <summary>
  65. /// 注销数据库连接
  66. /// </summary>
  67. /// <returns>返回连接状态</returns>
  68. ConnectionState Disconnect();
  69. /// <summary>
  70. /// 关闭数据库连接
  71. /// </summary>
  72. /// <returns>返回连接状态</returns>
  73. ConnectionState Close();
  74. /// <summary>
  75. /// 提交事务
  76. /// </summary>
  77. void Commit();
  78. /// <summary>
  79. /// 回滚事务
  80. /// </summary>
  81. void Rollback();
  82. void RollbackTo(string p_strcheckPoint);
  83. /// <summary>
  84. /// 设置某个时间点的数据库操作 该功能没有实现
  85. /// </summary>
  86. /// <param name="p_strcheckPoint">时间点名称</param>
  87. void SavePoint(string p_strcheckPoint);
  88. /// <summary>
  89. /// 返回一个DataSet数据集合
  90. /// </summary>
  91. /// <param name="p_strCommand">对应的SQL语句</param>
  92. /// <returns>返回一个DataSet数据集合</returns>
  93. DataSet GetSqlResultToDs(string p_strCommand, IDataParameter[] p_Parameter = null);
  94. /// <summary>
  95. /// 返回一个自定名称的DataSet数据集合
  96. /// </summary>
  97. /// <param name="p_strCommand">对应的SQL语句</param>
  98. /// <returns>返回一个自定名称的DataSet数据集合</returns>
  99. DataSet GetSqlResultToDs(string p_strCommand, string p_strName, IDataParameter[] p_Parameter = null);
  100. /// <summary>
  101. /// 执行对应的Sql语句,返回一个数据表
  102. /// </summary>
  103. /// <param name="p_strCommand">要执行的SQL语句</param>
  104. /// <returns>返回对应的数据表</returns>
  105. DataTable GetSqlResultToDt(string p_strCommand, IDataParameter[] p_Parameter = null);
  106. /// <summary>
  107. /// 执行对应的Sql语句,返回一个字符串
  108. /// </summary>
  109. /// <param name="p_strCommand">要执行的SQL语句</param>
  110. /// <returns>返回对应的一个字符串</returns>
  111. string GetSqlResultToStr(string p_strCommand, IDataParameter[] p_Parameter = null);
  112. /// <summary>
  113. /// 执行对应的Sql语句,返回一个object
  114. /// </summary>
  115. /// <param name="p_strCommand">要执行的SQL语句</param>
  116. /// <returns>返回对应的一个object</returns>
  117. object GetSqlResultToObj(string p_strCommand, IDataParameter[] p_Parameter = null);
  118. /// <summary>
  119. /// 执行对应的SQL语句,返回对应的二进制流信息
  120. /// </summary>
  121. /// <param name="p_strCommand">要执行的SQL语句</param>
  122. /// <returns>返回对应的二进制流信息</returns>
  123. byte[] GetSqlResultToBt(string p_strCommand, IDataParameter[] p_Parameter = null);
  124. /// <summary>
  125. /// 执行对应的SQL语句,并返回受影响的数据行数
  126. /// </summary>
  127. /// <param name="p_strCommand">对应的SQL语句</param>
  128. /// <returns>受影响的数据行数</returns>
  129. int ExecuteNonQuery(string p_strCommand, IDataParameter[] p_Parameter = null);
  130. /// <summary>
  131. /// 执行对应的SQL语句,返回受影响的数据行数
  132. /// </summary>
  133. /// <param name="p_strCommand">SQL语句</param>
  134. /// <param name="p_procedure">类型 TRUE是存储过程 False普通SQL语句</param>
  135. /// <returns>受影响的数据行数</returns>
  136. int ExecuteNonQuery(string p_strCommand, bool p_procedure, IDataParameter[] p_Parameter = null);
  137. /// <summary>
  138. /// 更新对应的二进制字段的值
  139. /// </summary>
  140. /// <param name="p_strTable">数据表名称</param>
  141. /// <param name="p_strColumn">数据列名称</param>
  142. /// <param name="p_blobData">对应的二进制值</param>
  143. /// <param name="p_strWhere">对应的条件</param>
  144. /// <returns>返回状态 0为失败 1为成功</returns>
  145. int UpdateBlob(string p_strTable, string p_strColumn, byte[] p_blobData, string p_strWhere);
  146. /// <summary>
  147. /// 执行存储过程
  148. /// </summary>
  149. /// <param name="p_strCommand">存储过程名称</param>
  150. /// <param name="p_Parameter">IDataParameter类型 参数集合</param>
  151. /// <returns></returns>
  152. DataSet ExecStoredProcedure(string p_strCommand, IDataParameter[] p_Parameter = null);
  153. }
  154. }