第一步:创建一个名为SqlDBHelper的类,用来作为联通数据库和系统之间的桥梁。

第二步:引入命名空间,如果System.Configuration、System.Transcations这两个命名空间找不到,可在项目目录下的【引用】=》添加引用【框架】中找到,添加引用即可。

 using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Transactions;

第三步:在配置文件中添加数据库连接地址。

 <configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<add name="MES" connectionString="Data Source=数据库IP;Database=数据库名;User ID=用户名;Password=连接密码;" providerName="System.Data.SqlClient;"/>
</connectionStrings>
</configuration>

第四部:在SqlDBHelper中编写读取配置文件中连接数据库字段:

  private static readonly string connectionString = ConfigurationManager.ConnectionStrings["MES"].ToString();

如果ConfigurationManager提示错误,同第二步操作即可。

第五步:编写操作Sql命令的方法(增删改查):

  public static string DataBase
{
get {
SqlConnection conn = new SqlConnection();
string db = conn.Database; //获取当前数据库或使用的数据库名称
conn.Dispose();
return db;
}
} #region 为SQL命令做提前的参数设定
/// <summary>
/// 为cmd做执行前的参数设定
/// </summary>
/// <param name="cmd">cmd命令对象</param>
/// <param name="conn">连接对象</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">SQL命令文本</param>
/// <param name="cmdParms">在命令文本中要使用的SQL参数</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != System.Data.ConnectionState.Open) //如果连接通道未打开,则打开连接通道
conn.Open();
cmd.CommandTimeout = ; //等待时间
cmd.Connection = conn; //为命令对象设置连接通道
cmd.CommandText = cmdText; //为命令对象设置SQL文本
if (trans != null) //如果存在事务,则为命令对象设置事务
cmd.Transaction = trans;
cmd.CommandType = cmdType; //设置命令类型(SQL文本/存储过程)
if (cmdParms != null) //如果参数集合不为空,为命令对象添加参数
cmd.Parameters.AddRange(cmdParms); }
#endregion #region sql 增删改
/// <summary>
/// 执行SQL命令 增删改(无参数)
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText) //重载
{
return ExecuteCommand(cmdText,null);
} /// <summary>
/// 执行SQL命令 增删改(带参数)
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, SqlParameter[] parameters)
{
return ExecuteCommand(cmdText,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL命令 增删改(带参数)
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="commandParameters">参数集合</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
{
using (TransactionScope transcation = new TransactionScope()) //TransactionScope 使代码块成为事务性代码
{
int res = ;
try
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters); res = cmd.ExecuteNonQuery(); //执行SQL并返回受影响的行数
transcation.Complete(); //指示范围内的操作都已经完成
}
}
catch (Exception ex)
{
throw ex;
}
return res;
}
} /// <summary>
/// 执行SQL命令 增删改
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">命令参数</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, SqlTransaction trans, CommandType cmdType, SqlParameter[] parameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,parameters);
int res = ;
try
{
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return res;
}
#endregion #region sql 查询操作
/// <summary>
/// 执行SQL命令 查询
/// </summary>
/// <param name="sqlStr">SQL命令语句</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr)
{
return GetDataTable(sqlStr,null);
} /// <summary>
/// 执行SQL命令 查询
/// </summary>
/// <param name="sqlStr">SQL命令</param>
/// <param name="parameters">参数集合</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr, SqlParameter[] parameters)
{
return GetDataTable(sqlStr,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL命令
/// </summary>
/// <param name="sqlStr">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">参数集合</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr, CommandType cmdType, SqlParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(sqlStr,connection);
cmd.CommandTimeout = ;
cmd.CommandType = cmdType;
if (parameters != null)
cmd.Parameters.AddRange(parameters);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
try
{
da.Fill(dt);
}
catch (Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return dt;
}
} public static DataTable GetDataTable(string sqlStr,string con,int i)
{
SqlConnection conn = new SqlConnection(con);
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr,conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
cmd.Dispose();
da.Dispose();
return dt;
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <returns></returns>
public static object GetScalar(string cmdText)
{
return GetScalar(cmdText,null);
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="parameters">参数集合</param>
/// <returns>第一行第一列(object类型)</returns>
public static object GetScalar(string cmdText, SqlParameter[] parameters)
{
return GetScalar(cmdText,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">参数集合</param>
/// <returns>第一行第一列的值(object类型)</returns>
public static object GetScalar(string cmdText, CommandType cmdType, SqlParameter[] parameters)
{
object res = ;
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,parameters);
try
{
res = cmd.ExecuteScalar();
}
catch(Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return res;
}
} public static void Insert_NewData(DataTable dt, string tableName)
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString,SqlBulkCopyOptions.UseInternalTransaction);
sqlBulkCopy.DestinationTableName = tableName;//数据库中的表名 sqlBulkCopy.WriteToServer(dt);
sqlBulkCopy.Close();
}
#endregion

至此,SqlDBHelper类完成,在需要时直接调用即可。

最新文章

  1. WebApi接口 - 如何在应用中调用webapi接口
  2. Ruby升级的最新方法
  3. codevs 2606 约数和问题
  4. 在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务
  5. 一次手工注入waf [转载]
  6. poj 2420,模拟退火算法,费马点
  7. JavaScript字符串转日期格式
  8. db file sequential read等待事件的一点研究
  9. winform 拖动无边框窗体(调用Windows API)
  10. centos 6.5 升级内核 linux 3.12.17
  11. 旋转关节(Revolute Joint)
  12. javascript . 05 json的组成、for...in 遍历对象、简单数据类型与复杂数据类型的传值与传址、内置对象
  13. dd的用法
  14. php中常用的字符串查找函数strstr()、strpos()实例解释
  15. 用C语言画一个心
  16. Android 线程_笔记
  17. eclipse汉化包
  18. filter滤镜效果(css3属性)
  19. 在 PHP 中使用 `yield` 来做内存优化
  20. bzoj5068: 友好的生物

热门文章

  1. 如何解决AndroidStudio下载资源慢的问题
  2. xshell链接vbox 上 nat 方式链接虚拟机 - 端口转发
  3. 怎么让mysql的id从0开始
  4. smarty 第一条数据判断
  5. Linux 查看 MySQL的版本信息
  6. WebApi实现通讯加密 (转)
  7. Spring-Kafka —— 消费重试机制实现
  8. iOS创建带删除线和价钱符号的Label
  9. Java泛型(2):泛型接口
  10. 【POJ - 3614】Sunscreen (优先队列)