一、將config封裝實體層;
例子config:
<?xml version="1.0" encoding="utf-8" ?> <Settings> <CRMSettings> <UserName>administrator</UserName> <Password>Sh123456</Password> <Domain>SSO.COM</Domain> <ConnectionString>Data Source=.;Initial Catalog=XHMZJ_MSCRM;User ID=sa;password=Sh123456</ConnectionString> </CRMSettings> <DataSourceSettings> <ConnectionString>Data Source=.;Initial Catalog=XH_YWXT;User ID=sa;password=Sh123456</ConnectionString> </DataSourceSettings> </Settings>
1.對於web版本的web.config。
2.應用程序版本的config。
public class ConfigHelper { private static ConfigHelper _instance = null; public static ConfigHelper Instance { get { if (_instance == null) _instance = new ConfigHelper(); return _instance; } } const string configFileName = "CRMConfig.xml"; protected XmlDocument doc; public ConfigHelper() { this.CRMConfigInstance = new CRMConfig(); this.SourceConfigInstance = new SourceConfig(); doc = new XmlDocument(); Exception Ex = null; try { doc.Load(this.FileFullPath); XmlNode Settings = doc.DocumentElement.SelectSingleNode("Settings"); //CRMSettings XmlNode CrmSettings = doc.DocumentElement.SelectSingleNode("CRMSettings"); XmlNode WebUrl = CrmSettings.SelectSingleNode(@"WebUrl"); XmlNode UserName = CrmSettings.SelectSingleNode(@"UserName"); XmlNode Password = CrmSettings.SelectSingleNode(@"Password"); XmlNode Domain = CrmSettings.SelectSingleNode(@"Domain"); XmlNode CRMConnectionString = CrmSettings.SelectSingleNode(@"ConnectionString"); //DataSourceSettings XmlNode DataSourceSettings = doc.DocumentElement.SelectSingleNode("DataSourceSettings"); XmlNode SourceConnectionString = DataSourceSettings.SelectSingleNode(@"ConnectionString"); this.CRMConfigInstance.UserName = UserName.InnerText; this.CRMConfigInstance.Password = Password.InnerText; this.CRMConfigInstance.Domain = Domain.InnerText; this.CRMConfigInstance.ServerURL = WebUrl.InnerText; this.CRMConfigInstance.ConnectionString = CRMConnectionString.InnerText; this.SourceConfigInstance.ConnectionString = SourceConnectionString.InnerText; } catch(Exception ex) { Ex = ex; } finally { if(Ex != null) { ExceptionHelper.WriteLog(Ex); } } } private string _filePath; public string FilePath { set { this._filePath = value; } get { return System.Windows.Forms.Application.StartupPath; } } /// <summary> /// full path /// </summary> public string FileFullPath { get { return System.IO.Path.Combine(this.FilePath, configFileName); } } public CRMConfig CRMConfigInstance = null; public SourceConfig SourceConfigInstance = null; } public class CRMConfig { private string _ConnectionString; public string ConnectionString { set { _ConnectionString = value; } get { return _ConnectionString; } } #region CRMConfig private string _serverURL; public string ServerURL { set { _serverURL = value; } get { return _serverURL; } } private string _userName; public string UserName { set { _userName = value; } get { return _userName; } } private string _password; public string Password { set { _password = value; } get { return _password; } } private string _domain; public string Domain { set { _domain = value; } get { return _domain; } } #endregion } public class SourceConfig { private string _ConnectionString; public string ConnectionString { set { _ConnectionString = value; } get { return _ConnectionString; } } } 應用程序版本二、SqlHeleper類
1 public static class SQLHelper 2 { 3 public static DataTable GetDataTable(string sqlStr, params SqlParameter[] sqlParameters) 4 { 5 using (SqlConnection conn = new SqlConnection(ConfigHelper.Instance.CRMConfigInstance.ConnectionString)) 6 { 7 conn.Open(); 8 using (SqlCommand cmd = conn.CreateCommand()) 9 { 10 cmd.CommandText = sqlStr; 11 foreach (SqlParameter sqlParameter in sqlParameters) 12 { 13 cmd.Parameters.Add(sqlParameter); 14 } 15 DataSet dataSet = new DataSet(); 16 SqlDataAdapter adapter = new SqlDataAdapter(cmd); 17 adapter.Fill(dataSet); 18 return dataSet.Tables[0]; 19 } 20 } 21 } 22 23 public static string XMLDocumentToString(ref XmlDocument doc) 24 { 25 MemoryStream stream = new MemoryStream(); 26 XmlTextWriter writer = new XmlTextWriter(stream, null); 27 writer.Formatting = Formatting.Indented; 28 doc.Save(writer); //轉換 29 30 StreamReader sr = new StreamReader(stream, System.Text.Encoding.UTF8); 31 stream.Position = 0; 32 string xmlString = sr.ReadToEnd(); 33 sr.Close(); 34 stream.Close(); 35 36 return xmlString; 37 } 38 39 public static int ExecuteNonQuerys(string SQL, params SqlParameter[] commandParameters) 40 { 41 SqlCommand cmd = new SqlCommand(); 42 43 using (SqlConnection connection = new SqlConnection(ConfigHelper.Instance.CRMConfigInstance.ConnectionString)) 44 { 45 PrepareCommand(cmd, connection, null, CommandType.Text, SQL, commandParameters); 46 int val = cmd.ExecuteNonQuery(); 47 48 cmd.Parameters.Clear(); 49 return val; 50 } 51 } 52 53 private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) 54 { 55 56 //判斷數據庫連接狀態 57 if (conn.State != ConnectionState.Open) 58 conn.Open(); 59 60 cmd.Connection = conn; 61 cmd.CommandText = cmdText; 62 63 //判斷是否需要事物處理 64 if (trans != null) 65 cmd.Transaction = trans; 66 67 cmd.CommandType = cmdType; 68 69 if (cmdParms != null) 70 { 71 foreach (SqlParameter parm in cmdParms) 72 cmd.Parameters.Add(parm); 73 } 74 } 75 } SqlHelper