一、将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-linux top 命令各参数详解

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

  2. 酷酷的CSS3三角形运用

    概述 在早期的前端Web设计开发年代,完成一些页面元素时,我们必须要有专业的PS美工爸爸,由PS美工爸爸来切图,做一些圆角.阴影.锯齿或者一些小图标. 在CSS3出现后,借助一些具有魔力的CSS3属性 ...

  3. JAVA通信系列三:Netty入门总结

    一.Netty学习资料 书籍<Netty In Action中文版> 对于Netty的十一个疑问http://news.cnblogs.com/n/205413/ 深入浅出Nettyhtt ...

  4. Angular2学习笔记——路由器模型(Router)

    Angular2以组件化的视角来看待web应用,使用Angular2开发的web应用,就是一棵组件树.组件大致分为两类:一类是如list.table这种通放之四海而皆准的通用组件,一类是专为业务开发的 ...

  5. Java基础知识(贰)

    一.面向对象 Java中的面向对象与C#的面向对象,本质都是一样.所以对于学过C#的同学理解Java中面向对象的概念就比较轻松. 对象 定义: 万物皆对象,客观存在的事物都称为对象. 1.面向对象 类 ...

  6. php缓冲区详解

    什么是缓冲区(buffer)? 简单而言,缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.至于为什么要有缓冲区,这是一个很广泛的问题,如果有兴趣,可以在网山找下资料. 其实缓冲区最 ...

  7. Livecoding.tv2.5发布,增加“用户搜索引擎”功能,方便用户找到匹配的程序员

    近日,在Livecoding.tv最新发布的博客中,介绍了该平台2.5版的一系列新功能,其中的User Discovery Engine(用户搜索引擎)受到大家的欢迎.使用该引擎,可以很方便地查找在L ...

  8. 【Win 10 应用开发】TCP通信过程

    基于TCP协议的通信,估计大伙儿都不陌生的,以前玩.net或玩C++的时候应该玩得很多吧.现在老周简单介绍一下在RT中如何用. TCP是基于连接的,所以,肯定有一方是监听者,通常称服务端或服务器,它负 ...

  9. Python标准模块--concurrent.futures

    1 模块简介 concurrent.futures模块是在Python3.2中添加的.根据Python的官方文档,concurrent.futures模块提供给开发者一个执行异步调用的高级接口.con ...

  10. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...