using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using CnasSynchronousCommon; using Dm; namespace CnasSynchronusDAL { public static class DamengHelper { private static String mConnStr = null; public static String ServerHost = null; public static void InitConnectionString(string strServerIP, string strServerPort, string strServerHost, string strServerUser, string strServerPwd) { ServerHost = strServerHost; mConnStr = $"Server={strServerIP};Port={strServerPort};Database={strServerHost};User Id={strServerUser};Password={strServerPwd};"; } public static void InitConnectionString(string strConnectiong) { mConnStr = strConnectiong; } /// /// 对达梦数据库执行增删改操作,返回受影响的行数。 /// /// 要执行的增删改的SQL语句 /// public static int ExecuteNonQuery(String sql) { DmConnection connection = new DmConnection(mConnStr); try { using (connection) { connection.Open(); DmTransaction transaction = (DmTransaction)connection.BeginTransaction(); using (DmCommand cmd = new DmCommand()) { try { PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null); int rows = cmd.ExecuteNonQuery(); transaction.Commit(); cmd.Parameters.Clear(); return rows; } catch (DmException e1) { try { transaction.Rollback(); } catch (Exception e2) { AppLog.Error(e2.Message); throw; } AppLog.Error(e1.Message); throw; } } } } catch (Exception e) { AppLog.Error(e.Message); throw; } } /// /// 执行查询,返回DataSet /// /// 要执行的查询SQL语句 /// public static DataSet ExecuteDataSet(String sql) { DmConnection connection = new DmConnection(mConnStr); try { using (connection) { connection.Open(); DmTransaction transaction = (DmTransaction)connection.BeginTransaction(); using (DmCommand cmd = new DmCommand()) { try { PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, null); DmDataAdapter adapter = new DmDataAdapter(); adapter.SelectCommand = cmd; DataSet ds = new DataSet(); adapter.Fill(ds); transaction.Commit(); cmd.Parameters.Clear(); return ds; } catch (DmException e1) { try { transaction.Rollback(); } catch (Exception e2) { AppLog.Error(e2.Message); throw; } AppLog.Error(e1.Message); throw; } } } } catch (Exception e) { AppLog.Error(e.Message); throw; } } /// /// 执行查询,返回DataTable /// /// /// /// public static DataTable ExecuteDataTable(string sqlText, params DmParameter[] parameters) { DataTable dt = null; try { using (DmDataAdapter adapter = new DmDataAdapter(sqlText, mConnStr)) { dt = new DataTable(); adapter.Fill(dt); } } catch (Exception ex) { AppLog.Error(ex.Message); throw; } return dt; } private static void PrepareCommand(DmCommand cmd, DmConnection conn, DmTransaction trans, CommandType cmdType, string cmdText, DmParameter[] cmdParms) { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = cmdText; if (trans != null) cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) { foreach (DmParameter parm in cmdParms) cmd.Parameters.Add(parm); } } /// /// 测试数据库连接 /// /// public static bool TestConnectDameng() { bool bIfSuccess = false; try { using (DmConnection connection = new DmConnection(mConnStr)) { connection.Open(); if (connection.State == ConnectionState.Open) bIfSuccess = true; } } catch (Exception ex) { AppLog.Error(ex.Message); bIfSuccess = false; } return bIfSuccess; } /// /// 对达梦数据库执行增删改操作,返回受影响的行数。 /// /// 要执行的增删改的SQL语句 /// SQL参数数组 /// 受影响的行数 public static int ExecuteNonQuery(String sql, DmParameter[] parameters) { DmConnection connection = new DmConnection(mConnStr); try { using (connection) { connection.Open(); DmTransaction transaction = (DmTransaction)connection.BeginTransaction(); using (DmCommand cmd = new DmCommand()) { try { PrepareCommand(cmd, connection, transaction, CommandType.Text, sql, parameters); int rows = cmd.ExecuteNonQuery(); transaction.Commit(); cmd.Parameters.Clear(); return rows; } catch (DmException e1) { try { transaction.Rollback(); } catch (Exception e2) { AppLog.Error(e2.Message); throw; } AppLog.Error(e1.Message); throw; } } } } catch (Exception e) { AppLog.Error(e.Message); throw; } } } }