一、将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。

 public class ConfigHelper
{
private static ConfigHelper _instance = null;
public static ConfigHelper Instance
{
get
{
if (_instance == null)
_instance = new ConfigHelper();
return _instance;
}
}
public ConfigHelper()
{
this.CRMConfigInstance = new CRMConfig();
Exception Ex = null;
try
{ this.CRMConfigInstance.ServerURL = System.Configuration.ConfigurationManager.AppSettings["WebUrl"];
this.CRMConfigInstance.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
this.CRMConfigInstance.Password = System.Configuration.ConfigurationManager.AppSettings["Password"];
this.CRMConfigInstance.Domain = System.Configuration.ConfigurationManager.AppSettings["Domain"];
this.CRMConfigInstance.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MZJCRM"].ConnectionString; }
catch (Exception ex)
{
Ex = ex;
}
finally
{
if (Ex != null)
{
//ExceptionHelper.WriteLog(Ex);
}
}
}
public CRMConfig CRMConfigInstance = 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
}

Web版本

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类

   public static class SQLHelper
{
public static DataTable GetDataTable(string sqlStr, params SqlParameter[] sqlParameters)
{
using (SqlConnection conn = new SqlConnection(ConfigHelper.Instance.CRMConfigInstance.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sqlStr;
foreach (SqlParameter sqlParameter in sqlParameters)
{
cmd.Parameters.Add(sqlParameter);
}
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataSet);
return dataSet.Tables[];
}
}
} public static string XMLDocumentToString(ref XmlDocument doc)
{
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = Formatting.Indented;
doc.Save(writer); //转换 StreamReader sr = new StreamReader(stream, System.Text.Encoding.UTF8);
stream.Position = ;
string xmlString = sr.ReadToEnd();
sr.Close();
stream.Close(); return xmlString;
} public static int ExecuteNonQuerys(string SQL, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand(); using (SqlConnection connection = new SqlConnection(ConfigHelper.Instance.CRMConfigInstance.ConnectionString))
{
PrepareCommand(cmd, connection, null, CommandType.Text, SQL, commandParameters);
int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear();
return val;
}
} private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] 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 (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}

SqlHelper

便于开发的Helper类的更多相关文章

  1. .NET中的加密算法总结(自定义加密Helper类续)

    1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...

  2. 之前采用的是Helper类的方法重构时改用了扩展方法

    在手机端输入网址不方全,通常会将网址做成一个二维码,然后用手机扫一下就可以打开预览.我们每改一下样式,就在手机上点一下刷新或电脑上按一下F5,这在最初的时候,也不觉得有什么问题,因为拿到我手上的静态页 ...

  3. 开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试

    在我们开发开发H5程序或者小程序的时候,有时候需要基于内置浏览器或者微信开发者工具进行测试,这个时候可以采用默认的localhost进行访问后端接口,一般来说没什么问题,如果我们需要通过USB基座方式 ...

  4. DbUtils是Apache出品一款简化JDBC开发的工具类

    DbUtils     - DbUtils是Apache出品一款简化JDBC开发的工具类     - 使用DbUtils可以让我们JDBC的开发更加简单     - DbUtils的使用:       ...

  5. MVC中使用HTML Helper类扩展HTML控件

    文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...

  6. 一点ASP.NET MVC Html.Helper类的方法

    一点ASP.NET MVC Html.Helper类 这里就只写一个Html.ActionLink()和Html.DropdownList(). Html.ActionLink()里有三个参数,第一个 ...

  7. phpcms v9二次开发之模型类的应用(1)

    在<phpcms二次开发之模型类model.class.php>中讲到了模型类的建立方法,接下来我讲一下模型类的应用.      前段时间我基于phpcms v9开发了一个足球网.足球网是 ...

  8. Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项

    一.设备类是Xamarin重要开发组成部分,下面介绍一下设备类的主要用法: //唤醒打电话 Device.OpenUri(new Uri("tel:180xxxxxxxx")); ...

  9. 用Java开发一个工具类,提供似于js中eval函数功能的eval方法

    今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...

随机推荐

  1. 最近在玩linux时 yum 遇到了问题

    主要是软件源出现了问题 我做的方式可能比较粗暴 ls -l /etc/yum.repos.d/       /*查看软件源*/ rm -rf /etc/yum.repos.d/   /*全删了*/ m ...

  2. VPN连接常见错误汇总

    提示远程服务器没有响应. 这种情况有两种情况,一种是远程服务器出现故障.另一种是自己的电脑出现问题,具体原因我还没有找到,但是可以肯定的是注册表除了问题,一个终极的解决办法就是把注册表替换了.先将HK ...

  3. s:form标签

    2017-01-07 17:43:18 基本的用法 <!-- Action类必须有一个无参的构造器,因为在执行action方法之前,拦截器已经创建了一个"空"的Action对 ...

  4. 续 CentOS7(mini) 运行MVC5 + Mariadb

    上一篇,介绍了在CentOS7上使用mono官方二进制安装包快速安装mono环境 并且成功运行了一个Owin自宿主应用(Booker) 由于Owin自宿主应用不需要System.Web的支持,所以可以 ...

  5. MongoDB与PostgresQL无责任初步测试

    PostgresQL一秒能插入多少条记录,MongoDB呢?读取的情况又如何?我写了一些简单的程序,得出了一些简单的数据,贴在这里分享,继续往下阅读前请注意下本文标题中的“无责任”,这表示此测试结果不 ...

  6. 用Go实现的简易TCP通信框架

    接触到GO之后,GO的网络支持非常令人喜欢.GO实现了在语法层面上可以保持同步语义,但是却又没有牺牲太多性能,底层一样使用了IO路径复用,比如在LINUX下用了EPOLL,在WINDOWS下用了IOC ...

  7. DOM对象模型接口规范中的四个基本接口

    DOM对象模型的四个基本接口 在DOM对象模型接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap.在这四个基本接口中,Document接口是对文档进 ...

  8. android内部培训视频_第四节(1)_异步网络操作

    第四节(1):异步网络操作  一.结合asyncTask下载网络图片 1.定义下载类,继承自asyncTask,参数分别为:String(url地址),Integer(刻度,本例没有用到),BitMa ...

  9. innerHTML和innerText的区别

    以<p id="example">welcome to <strong>JavaScript</strong> !!!</p>为例: ...

  10. 计算机程序的思维逻辑 (46) - 剖析PriorityQueue

    上节介绍了堆的基本概念和算法,本节我们来探讨堆在Java中的具体实现类 - PriorityQueue. 我们先从基本概念谈起,然后介绍其用法,接着分析实现代码,最后总结分析其特点. 基本概念 顾名思 ...