CNAS取数仪器端升级
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

256 行
8.3KB

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