using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Configuration;namespace ponents.DBUtility{public class ConnetionLine{public static SqlHelper SystemManageCn{get{try{string connectionString =ConfigurationManager.ConnectionStrings["SystemManageConnectionString"].ConnectionString;SqlHelper sqlHelper = GetConnetion(connectionString);return sqlHelper;}catch (Exception ex){throw ex;}}}public static SqlHelper JIEJINERPReportCn{get{try{string connectionString =ConfigurationManager.ConnectionStrings["JIEJINERPReportConnectionString"].ConnectionString ;SqlHelper sqlHelper = GetConnetion(connectionString);return sqlHelper;}catch (Exception ex){throw ex;}}}private static SqlHelper GetConnetion(String connectionString){try{int stratNo = connectionString.IndexOf("Server") + 7;int endNo = connectionString.IndexOf(";");string serverIP = connectionString.Substring(stratNo, endNo - stratNo);//string pingrst = CmdPing(serverIP);string pingrst = "连接";if (pingrst != "连接"){throw new Exception(pingrst + "\n" + "無法連線到服務器,請檢查您的網絡連接狀態!!");}SqlHelper cn = new SqlHelper(connectionString);return cn;}catch (Exception ex){throw ex;}}private static string CmdPing(string strIp){Process p = new Process();p.StartInfo.FileName = "cmd.exe";eShellExecute = false;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;string pingrst;p.Start();p.StandardInput.WriteLine("ping -n 1 " + strIp);p.StandardInput.WriteLine("exit");string strRst = p.StandardOutput.ReadToEnd();if (strRst.IndexOf("(0% loss)") != -1 || strRst.IndexOf("(0% 遺失)") != -1 || strRst.IndexOf("(0% 遗失)") != -1)pingrst = "连接";else if (strRst.IndexOf("Destination host unreachable.") != -1)pingrst = "无法到达目的主机";else if (strRst.IndexOf("Request timed out.") != -1)pingrst = "超时";else if (strRst.IndexOf("Unknown host") != -1)pingrst = "无法解析主机";elsepingrst = strRst;p.Close();return pingrst;}}}using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace ponents.DBUtility{public class SqlHelper{private SqlConnection cn;private SqlTransaction m_sqlTransaction;private Boolean m_bTransaction;private SqlCommand ist;private String _defultDatabase = "";public SqlHelper(){try{ist = new SqlCommand();ist.Connection = cn;mandTimeout = 3000000;}catch (Exception ex){throw ex;}}public SqlHelper(String connString){try{ = new SqlConnection(connString);this.ist = new SqlCommand();this.ist.Connection = cn;this._defultDatabase = cn.Database;mandTimeout = 3000000;}catch (Exception ex){throw ex;}}public void ChangeDB(String dbName){String sqlstr = "Use " + dbName;try{if (cn.State == ConnectionState.Closed){cn.Open();}mandText = sqlstr;mandTimeout = cn.ConnectionTimeout;ist.ExecuteNonQuery();}catch (Exception ex){throw ex;}}public DataSet ExecuteDataSetComText(string sqlStr, params object[] parameterValues) {try{if (cn.State == ConnectionState.Closed){cn.Open();}using (DataSet ds = new DataSet()){mandText = sqlStr;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.Text;ist.Parameters.Clear();for (int i = 0; i <= parameterValues.Length - 1; i++){ist.Parameters.Add(parameterValues[i]);}using (SqlDataAdapter sqldata = new SqlDataAdapter(ist)){sqldata.Fill(ds);}mandText = "";return ds;}}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public DataSet ExecuteDataSetComSP(string spName, params object[] parameterValues) {try{if (cn.State == ConnectionState.Closed){cn.Open();}using (DataSet ds = new DataSet()){mandText = spName;mandTimeout = 3000000;mandType = CommandType.StoredProcedure ;ist.Parameters.Clear();for (int i = 0; i <= parameterValues.Length - 1; i++){ist.Parameters.Add(parameterValues[i]);}using (SqlDataAdapter sqldata = new SqlDataAdapter(ist)) {sqldata.Fill(ds);}mandText = "";return ds;}}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public DataTable ExecuteDataTableComText(string sqlStr, params object[] parameterValues){try{if (cn.State == ConnectionState.Closed){cn.Open();}using (DataTable dt = new DataTable()){mandText = sqlStr;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.Text;ist.Parameters.Clear();for (int i = 0; i < parameterValues.Length; i++){ist.Parameters.Add(parameterValues[i]);}using (SqlDataAdapter sqldata = new SqlDataAdapter(ist)){sqldata.Fill(dt);}mandText = "";return dt;}}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public DataTable ExecuteDataTableComSP(string spName, params object[] parameterValues){try{if (cn.State == ConnectionState.Closed){cn.Open();}using (DataTable dt = new DataTable()){mandText = spName;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.StoredProcedure;ist.Parameters.Clear();for (int i = 0; i <= parameterValues.Length - 1; i++){ist.Parameters.Add(parameterValues[i]);}using (SqlDataAdapter sqldata = new SqlDataAdapter(ist)) {sqldata.Fill(dt);}mandText = "";return dt;}}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public int ExecuteComSP(string sqlStr, params object[] parameterValues) {try{if (cn.State == ConnectionState.Closed){cn.Open();}mandText = sqlStr;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.StoredProcedure;ist.Parameters.Clear();for (int i = 0; i <= parameterValues.Length - 1; i++){ist.Parameters.Add(parameterValues[i]);}int rowsCout = ist.ExecuteNonQuery();return rowsCout;}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public int ExecuteComText(string sqlStr, params object[] parameterValues) {try{if (cn.State == ConnectionState.Closed){cn.Open();}mandText = sqlStr;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.Text ;ist.Parameters.Clear();for (int i = 0; i <= parameterValues.Length - 1; i++){ist.Parameters.Add(parameterValues[i]); }int rowsCout = ist.ExecuteNonQuery();return rowsCout;}catch (Exception ex){throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public int ExecuteComText(string sql, Boolean Trains) {try{if (cn.State == ConnectionState.Closed){cn.Open();}mandText = sql;mandTimeout = cn.ConnectionTimeout; mandType = CommandType.Text;int rowsCout = 0;if (Trains){BeginTrans();rowsCout = ist.ExecuteNonQuery();CommitTrans();}else{rowsCout = ist.ExecuteNonQuery();}return rowsCout;}catch (Exception ex){if (Trains){RollbackTrans();}throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open) {cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public int ExecuteComSP(string sql, Boolean Trains){try{if (cn.State == ConnectionState.Closed){cn.Open();}mandText = sql;mandTimeout = cn.ConnectionTimeout;mandType = CommandType.StoredProcedure;int rowsCout = 0;if (Trains){BeginTrans();rowsCout = ist.ExecuteNonQuery();CommitTrans();}else{rowsCout = ist.ExecuteNonQuery();}return rowsCout;}catch (Exception ex){if (Trains){RollbackTrans();}throw ex;}finally{if (m_bTransaction == false){if (cn.State == ConnectionState.Open){cn.Close();}}else{if (cn.Database != _defultDatabase){ChangeDB(_defultDatabase);}}}}public void BeginTrans(){if (cn.State == ConnectionState.Closed){cn.Open();}if (cn == null || cn.State == ConnectionState.Closed){throw new ApplicationException("连接失败");}m_bTransaction = true;try{m_sqlTransaction = cn.BeginTransaction(IsolationLevel.ReadCommitted); ist.Transaction = m_sqlTransaction;}catch (Exception ex){throw ex;}}public Boolean CommitTrans(){if (!m_bTransaction)return false;}try{if (m_sqlTransaction.Connection != null) {m_mit();m_bTransaction = false;}}catch (Exception ex){m_sqlTransaction.Rollback();throw ex;}if (cn.State == ConnectionState.Open){cn.Close();}return true;}public Boolean RollbackTrans(){if (!m_bTransaction){return false;}try{if (m_sqlTransaction.Connection != null) {m_sqlTransaction.Rollback();}}catch (Exception ex){throw ex;if (cn.State == ConnectionState.Open){cn.Close();}return true;}public void Dispose(){try{if (cn != null){cn.Dispose();cn = null;}if (m_sqlTransaction != null){m_sqlTransaction.Dispose();m_sqlTransaction = null;}if (ist != null){ist.Dispose();ist = null;}}catch (Exception ex){throw ex;}}}}//获取数据方法public DataSet CostIGS2102(ERPReportModel eRPReport) {{string sqlStr = "SP_HOI_Cost_IGS2102";SqlParameter[] objParams = new SqlParameter[1];objParams[0] = new SqlParameter("@quotationNo", eRPReport.QuotationNoValue);DataSet ds = ConnetionLine.JIEJINERPReportCn.ExecuteDataSetComSP(sqlStr, objParams);ds.Tables[0].TableName = "PreCost";ds.Tables[1].TableName = "V_Quotation_Fab";ds.Tables[2].TableName = "V_Quotation_St";ds.Tables[3].TableName = "V_Quotation_CMPVAS";ds.Tables[4].TableName = "V_Quotation_Additional";ds.Tables[5].TableName = "V_Quotation_Management";return ds;}catch (Exception ex){throw ex;}}。