CNAS取数仪器端升级
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

DamengHelper.cs 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  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. /// 对数据库执行增删改操作,返回受影响的行数。
  70. /// </summary>
  71. /// <param name="sql">要执行的增删改的SQL语句</param>
  72. /// <returns></returns>
  73. public static int ExecuteNonQuery(String sql, DmParameter[] cmdParams)
  74. {
  75. try
  76. {
  77. using (DmConnection connection = new DmConnection(mConnStr))
  78. {
  79. connection.Open();
  80. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  81. using (DmCommand cmd = new DmCommand())
  82. {
  83. try
  84. {
  85. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, cmdParams);
  86. int rows = cmd.ExecuteNonQuery();
  87. transaction.Commit();
  88. cmd.Parameters.Clear();
  89. return rows;
  90. }
  91. catch (DmException e1)
  92. {
  93. try
  94. {
  95. transaction.Rollback();
  96. }
  97. catch (Exception e2)
  98. {
  99. AppLog.Error(e2.Message);
  100. throw;
  101. }
  102. AppLog.Error(e1.Message);
  103. throw;
  104. }
  105. }
  106. }
  107. }
  108. catch (Exception e)
  109. {
  110. AppLog.Error(e.Message);
  111. throw;
  112. }
  113. }
  114. /// <summary>
  115. /// 对达梦数据库执行操作,返回第一行第一列数据
  116. /// </summary>
  117. /// <param name="sql"></param>
  118. /// <returns></returns>
  119. public static int ExecuteScalar(String sql)
  120. {
  121. try
  122. {
  123. using (DmConnection connection = new DmConnection(mConnStr))
  124. {
  125. connection.Open();
  126. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  127. using (DmCommand cmd = new DmCommand())
  128. {
  129. try
  130. {
  131. int line = 0;
  132. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
  133. String str = cmd.ExecuteScalar().ToString();
  134. transaction.Commit();
  135. line = Convert.ToInt32(str);
  136. cmd.Parameters.Clear();
  137. return line;
  138. }
  139. catch (DmException e1)
  140. {
  141. try
  142. {
  143. transaction.Rollback();
  144. }
  145. catch (Exception e2)
  146. {
  147. AppLog.Error(e2.Message);
  148. throw;
  149. }
  150. AppLog.Error(e1.Message);
  151. throw;
  152. }
  153. }
  154. }
  155. }
  156. catch (Exception e)
  157. {
  158. AppLog.Error(e.Message);
  159. throw;
  160. }
  161. }
  162. /// <summary>
  163. /// 查询返回DataSet
  164. /// </summary>
  165. /// <param name="sql"></param>
  166. /// <returns></returns>
  167. public static DataSet ExecuteDataSet(String sql)
  168. {
  169. DmConnection connection = new DmConnection(mConnStr);
  170. try
  171. {
  172. using (connection)
  173. {
  174. connection.Open();
  175. DmTransaction transaction = (DmTransaction)connection.BeginTransaction();
  176. using (DmCommand cmd = new DmCommand())
  177. {
  178. try
  179. {
  180. PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null);
  181. DmDataAdapter adapter = new DmDataAdapter();
  182. adapter.SelectCommand = cmd;
  183. DataSet ds = new DataSet();
  184. adapter.Fill(ds);
  185. transaction.Commit();
  186. cmd.Parameters.Clear();
  187. return ds;
  188. }
  189. catch (DmException e1)
  190. {
  191. try
  192. {
  193. transaction.Rollback();
  194. }
  195. catch (Exception e2)
  196. {
  197. AppLog.Error(e2.Message);
  198. throw;
  199. }
  200. AppLog.Error(e1.Message);
  201. throw;
  202. }
  203. }
  204. }
  205. }
  206. catch (Exception e)
  207. {
  208. AppLog.Error(e.Message);
  209. throw;
  210. }
  211. finally
  212. {
  213. if (connection != null)
  214. {
  215. connection.Close();
  216. }
  217. }
  218. }
  219. /// <summary>
  220. /// 执行sql 返回一个DataTable
  221. /// </summary>
  222. /// <param name="sqlText"></param>
  223. /// <param name="parameters"></param>
  224. /// <returns></returns>
  225. public static DataTable ExecuteDataTable(string sqlText, params DmParameter[] parameters)
  226. {
  227. DataTable dt = null;
  228. try
  229. {
  230. using (DmDataAdapter adapter = new DmDataAdapter(sqlText, mConnStr))
  231. {
  232. dt = new DataTable();
  233. adapter.SelectCommand.Parameters.AddRange(parameters);
  234. adapter.Fill(dt);
  235. return dt;
  236. }
  237. }
  238. catch (Exception ex)
  239. {
  240. AppLog.Error(ex.Message);
  241. }
  242. return null;
  243. }
  244. /// <summary>
  245. /// 准备执行一个命令
  246. /// </summary>
  247. /// <param name="cmd">sql命令</param>
  248. /// <param name="conn">数据库连接</param>
  249. /// <param name="trans">数据库事务</param>
  250. /// <param name="cmdType">命令类型例如 存储过程或者文本</param>
  251. /// <param name="cmdText">命令文本,例如:Select * from Products</param>
  252. /// <param name="cmdParms">执行命令的参数</param>
  253. private static void PrepareCommand(DmCommand cmd, DmConnection conn, DmTransaction trans, CommandType cmdType, string cmdText, DmParameter[] cmdParms)
  254. {
  255. if (conn.State != ConnectionState.Open)
  256. conn.Open();
  257. cmd.Connection = conn;
  258. cmd.CommandText = cmdText;
  259. if (trans != null)
  260. cmd.Transaction = trans;
  261. cmd.CommandType = cmdType;
  262. if (cmdParms != null)
  263. {
  264. foreach (DmParameter parm in cmdParms)
  265. cmd.Parameters.Add(parm);
  266. }
  267. }
  268. /// <summary>
  269. /// 测试数据库连接
  270. /// </summary>
  271. /// <returns></returns>
  272. public static bool TestConnectDameng()
  273. {
  274. bool bIfSuccess = false;
  275. try
  276. {
  277. using (DmConnection connection = new DmConnection(mConnStr))
  278. {
  279. connection.Open();
  280. if (connection.State == ConnectionState.Open)
  281. bIfSuccess = true;
  282. }
  283. }
  284. catch (Exception ex)
  285. {
  286. AppLog.Error(ex.Message);
  287. bIfSuccess = false;
  288. }
  289. return bIfSuccess;
  290. }
  291. }
  292. }