IDBTransaction.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. void Commit();
  73. /// <summary>
  74. /// 回滚事务
  75. /// </summary>
  76. void Rollback();
  77. void RollbackTo(string p_strcheckPoint);
  78. /// <summary>
  79. /// 设置某个时间点的数据库操作 该功能没有实现
  80. /// </summary>
  81. /// <param name="p_strcheckPoint">时间点名称</param>
  82. void SavePoint(string p_strcheckPoint);
  83. /// <summary>
  84. /// 返回一个DataSet数据集合
  85. /// </summary>
  86. /// <param name="p_strCommand">对应的SQL语句</param>
  87. /// <returns>返回一个DataSet数据集合</returns>
  88. DataSet GetSqlResultToDs(string p_strCommand, IDataParameter[] p_Parameter = null);
  89. /// <summary>
  90. /// 返回一个自定名称的DataSet数据集合
  91. /// </summary>
  92. /// <param name="p_strCommand">对应的SQL语句</param>
  93. /// <returns>返回一个自定名称的DataSet数据集合</returns>
  94. DataSet GetSqlResultToDs(string p_strCommand, string p_strName, IDataParameter[] p_Parameter = null);
  95. /// <summary>
  96. /// 执行对应的Sql语句,返回一个数据表
  97. /// </summary>
  98. /// <param name="p_strCommand">要执行的SQL语句</param>
  99. /// <returns>返回对应的数据表</returns>
  100. DataTable GetSqlResultToDt(string p_strCommand, IDataParameter[] p_Parameter = null);
  101. /// <summary>
  102. /// 执行对应的Sql语句,返回一个字符串
  103. /// </summary>
  104. /// <param name="p_strCommand">要执行的SQL语句</param>
  105. /// <returns>返回对应的一个字符串</returns>
  106. string GetSqlResultToStr(string p_strCommand, IDataParameter[] p_Parameter = null);
  107. /// <summary>
  108. /// 执行对应的Sql语句,返回一个object
  109. /// </summary>
  110. /// <param name="p_strCommand">要执行的SQL语句</param>
  111. /// <returns>返回对应的一个object</returns>
  112. object GetSqlResultToObj(string p_strCommand, IDataParameter[] p_Parameter = null);
  113. /// <summary>
  114. /// 执行对应的SQL语句,返回对应的二进制流信息
  115. /// </summary>
  116. /// <param name="p_strCommand">要执行的SQL语句</param>
  117. /// <returns>返回对应的二进制流信息</returns>
  118. byte[] GetSqlResultToBt(string p_strCommand, IDataParameter[] p_Parameter = null);
  119. /// <summary>
  120. /// 执行对应的SQL语句,并返回受影响的数据行数
  121. /// </summary>
  122. /// <param name="p_strCommand">对应的SQL语句</param>
  123. /// <returns>受影响的数据行数</returns>
  124. int ExecuteNonQuery(string p_strCommand, IDataParameter[] p_Parameter = null);
  125. /// <summary>
  126. /// 执行对应的SQL语句,返回受影响的数据行数
  127. /// </summary>
  128. /// <param name="p_strCommand">SQL语句</param>
  129. /// <param name="p_procedure">类型 TRUE是存储过程 False普通SQL语句</param>
  130. /// <returns>受影响的数据行数</returns>
  131. int ExecuteNonQuery(string p_strCommand, bool p_procedure, IDataParameter[] p_Parameter = null);
  132. /// <summary>
  133. /// 更新对应的二进制字段的值
  134. /// </summary>
  135. /// <param name="p_strTable">数据表名称</param>
  136. /// <param name="p_strColumn">数据列名称</param>
  137. /// <param name="p_blobData">对应的二进制值</param>
  138. /// <param name="p_strWhere">对应的条件</param>
  139. /// <returns>返回状态 0为失败 1为成功</returns>
  140. int UpdateBlob(string p_strTable, string p_strColumn, byte[] p_blobData, string p_strWhere);
  141. /// <summary>
  142. /// 执行存储过程
  143. /// </summary>
  144. /// <param name="p_strCommand">存储过程名称</param>
  145. /// <param name="p_Parameter">IDataParameter类型 参数集合</param>
  146. /// <returns></returns>
  147. DataSet ExecStoredProcedure(string p_strCommand, IDataParameter[] p_Parameter = null);
  148. }
  149. }