CNAS取数仪器端升级
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 line
8.2KB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5. using System.Text;
  6. using CnasSynchronousCommon;
  7. using Dm;
  8. namespace CnasSynchronusDAL
  9. {
  10. public static class DamengHelper
  11. {
  12. private static String mConnStr = null;
  13. public static void InitConnectionString(string strServerIP, string strServerPort, string strServerHost, string strServerUser, string strServerPwd)
  14. {
  15. mConnStr = $"Server={strServerIP};Port={strServerPort};Database={strServerHost};User Id={strServerUser};Password={strServerPwd};";
  16. }
  17. public static void InitConnectionString(string strConnectiong)
  18. {
  19. mConnStr = strConnectiong;
  20. }
  21. /// <summary>
  22. /// 对达梦数据库执行增删改操作,返回受影响的行数。
  23. /// </summary>
  24. /// <param name="sql">要执行的增删改的SQL语句</param>
  25. /// <returns></returns>
  26. public static int ExecuteNonQuery(String sql)
  27. {
  28. DmConnection connection = new DmConnection(mConnStr);
  29. try
  30. {
  31. using (connection)
  32. {
  33. connection.Open();
  34. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  35. using (DmCommand cmd = new DmCommand())
  36. {
  37. try
  38. {
  39. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
  40. int rows = cmd.ExecuteNonQuery();
  41. transaction.Commit();
  42. cmd.Parameters.Clear();
  43. return rows;
  44. }
  45. catch (DmException e1)
  46. {
  47. try
  48. {
  49. transaction.Rollback();
  50. }
  51. catch (Exception e2)
  52. {
  53. AppLog.Error(e2.Message);
  54. throw;
  55. }
  56. AppLog.Error(e1.Message);
  57. throw;
  58. }
  59. }
  60. }
  61. }
  62. catch (Exception e)
  63. {
  64. AppLog.Error(e.Message);
  65. throw;
  66. }
  67. }
  68. /// <summary>
  69. /// 执行查询,返回DataSet
  70. /// </summary>
  71. /// <param name="sql">要执行的查询SQL语句</param>
  72. /// <returns></returns>
  73. public static DataSet ExecuteDataSet(String sql)
  74. {
  75. DmConnection connection = new DmConnection(mConnStr);
  76. try
  77. {
  78. using (connection)
  79. {
  80. connection.Open();
  81. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  82. using (DmCommand cmd = new DmCommand())
  83. {
  84. try
  85. {
  86. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
  87. DmDataAdapter adapter = new DmDataAdapter();
  88. adapter.SelectCommand = cmd;
  89. DataSet ds = new DataSet();
  90. adapter.Fill(ds);
  91. transaction.Commit();
  92. cmd.Parameters.Clear();
  93. return ds;
  94. }
  95. catch (DmException e1)
  96. {
  97. try
  98. {
  99. transaction.Rollback();
  100. }
  101. catch (Exception e2)
  102. {
  103. AppLog.Error(e2.Message);
  104. throw;
  105. }
  106. AppLog.Error(e1.Message);
  107. throw;
  108. }
  109. }
  110. }
  111. }
  112. catch (Exception e)
  113. {
  114. AppLog.Error(e.Message);
  115. throw;
  116. }
  117. }
  118. /// <summary>
  119. /// 执行查询,返回DataTable
  120. /// </summary>
  121. /// <param name="sqlText"></param>
  122. /// <param name="parameters"></param>
  123. /// <returns></returns>
  124. public static DataTable ExecuteDataTable(string sqlText, params DmParameter[] parameters)
  125. {
  126. DataTable dt = null;
  127. try
  128. {
  129. using (DmDataAdapter adapter = new DmDataAdapter(sqlText, mConnStr))
  130. {
  131. dt = new DataTable();
  132. adapter.Fill(dt);
  133. }
  134. }
  135. catch (Exception ex)
  136. {
  137. AppLog.Error(ex.Message);
  138. throw;
  139. }
  140. return dt;
  141. }
  142. private static void PrepareCommand(DmCommand cmd, DmConnection conn, DmTransaction trans, CommandType cmdType, string cmdText, DmParameter[] cmdParms)
  143. {
  144. if (conn.State != ConnectionState.Open)
  145. conn.Open();
  146. cmd.Connection = conn;
  147. cmd.CommandText = cmdText;
  148. if (trans != null)
  149. cmd.Transaction = trans;
  150. cmd.CommandType = cmdType;
  151. if (cmdParms != null)
  152. {
  153. foreach (DmParameter parm in cmdParms)
  154. cmd.Parameters.Add(parm);
  155. }
  156. }
  157. /// <summary>
  158. /// 测试数据库连接
  159. /// </summary>
  160. /// <returns></returns>
  161. public static bool TestConnectDameng()
  162. {
  163. bool bIfSuccess = false;
  164. try
  165. {
  166. using (DmConnection connection = new DmConnection(mConnStr))
  167. {
  168. connection.Open();
  169. if (connection.State == ConnectionState.Open)
  170. bIfSuccess = true;
  171. }
  172. }
  173. catch (Exception ex)
  174. {
  175. AppLog.Error(ex.Message);
  176. bIfSuccess = false;
  177. }
  178. return bIfSuccess;
  179. }
  180. /// <summary>
  181. /// 对达梦数据库执行增删改操作,返回受影响的行数。
  182. /// </summary>
  183. /// <param name="sql">要执行的增删改的SQL语句</param>
  184. /// <param name="parameters">SQL参数数组</param>
  185. /// <returns>受影响的行数</returns>
  186. public static int ExecuteNonQuery(String sql, DmParameter[] parameters)
  187. {
  188. DmConnection connection = new DmConnection(mConnStr);
  189. try
  190. {
  191. using (connection)
  192. {
  193. connection.Open();
  194. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  195. using (DmCommand cmd = new DmCommand())
  196. {
  197. try
  198. {
  199. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, parameters);
  200. int rows = cmd.ExecuteNonQuery();
  201. transaction.Commit();
  202. cmd.Parameters.Clear();
  203. return rows;
  204. }
  205. catch (DmException e1)
  206. {
  207. try
  208. {
  209. transaction.Rollback();
  210. }
  211. catch (Exception e2)
  212. {
  213. AppLog.Error(e2.Message);
  214. throw;
  215. }
  216. AppLog.Error(e1.Message);
  217. throw;
  218. }
  219. }
  220. }
  221. }
  222. catch (Exception e)
  223. {
  224. AppLog.Error(e.Message);
  225. throw;
  226. }
  227. }
  228. }
  229. }