using System.Configuration;
using System.Data.SqlClient;
using System.Data;namespace ExamDAL
{class SqHelper{#region 属性区// 连接字符串private static string strConn;public static string StrConn{get{return ConfigurationManager.ConnectionStrings["Exam"].ConnectionString;}}#endregion#region 方法区#region 获取受影响的行数/// 执行非查询存储过程和SQL语句/// 增、删、改/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="cmdType">Command类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回影响行数</returns>public static int ExcuteSQL(string strSQL, CommandType cmdType, params SqlParameter[] paras){int count = 0;using (SqlConnection conn = new SqlConnection(StrConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdType;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();count = cmd.ExecuteNonQuery();conn.Close();}return count;}/// <summary>/// 执行没有参数的SQL的语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>受影响的行数</returns>public static int ExcuteSQL(string strSQL){return ExcuteSQL(strSQL, null);}/// <summary>/// 执行有参数的SQL的语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数</param>/// <returns>受影响的行数</returns>public static int ExcuteSQL(string strSQL, SqlParameter[] paras){return ExcuteSQL(strSQL, CommandType.Text, paras);}/// <summary>/// 执行没有参数的存储过程/// </summary>/// <param name="ProcName">存储过程名称</param>/// <returns>受影响的行数</returns>public static int ExcuteProc(string ProcName){return ExcuteSQL(ProcName, CommandType.StoredProcedure);}/// <summary>/// 执行有参数的存储过程/// </summary>/// <param name="ProcName">存储过程名称</param>/// <param name="pars">参数</param>/// <returns>受影响的行数</returns>public static int ExcuteProc(string ProcName, SqlParameter[] pars){return ExcuteSQL(ProcName, CommandType.StoredProcedure, pars);}#endregion#region 获取第一行第一列的值/// <summary>/// 执行SQL语句,返回首行首列/// </summary>/// <param name="strSQL">要执行的SQL语句</param>/// <param name="cmdtype">执行的类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>返回的首行首列</returns>public static object GetObject(string strSQL, CommandType cmdtype, params SqlParameter[] paras){object obj = null;using (SqlConnection conn = new SqlConnection(StrConn)){SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();obj = cmd.ExecuteScalar();conn.Close();}return obj;}/// <summary>/// 根据sql语句获取单个值/// </summary>/// <param name="strSQL"></param>/// <returns></returns>public static object GetObject(string strSQL){return GetObject(strSQL, null);}/// <summary>/// 根据sql语句 和 参数数组获取单个值/// </summary>/// <param name="strSQL"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObject(string strSQL, SqlParameter[] paras){return GetObject(strSQL, CommandType.Text, paras);}/// <summary>/// 调用不带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName){return GetObjectByProc(ProcName);}/// <summary>/// 调用带参数的存储过程获取单个值/// </summary>/// <param name="ProcName"></param>/// <param name="paras"></param>/// <returns></returns>public static object GetObjectByProc(string ProcName, params SqlParameter[] paras){return GetObject(ProcName, CommandType.StoredProcedure, paras);}#endregion#region 获取DataReader/// <summary>/// 根据sql语句返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL){return GetReader(strSQL, null);}/// <summary>/// 根据sql语句和参数返回DataReader对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReader(string strSQL, params SqlParameter[] paras){return GetReader(strSQL, CommandType.Text, paras);}/// <summary>/// 调用不带参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名称</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName){return GetReaderByProc(procName);}/// <summary>/// 调用带有参数的存储过程,返回DataReader对象/// </summary>/// <param name="procName">存储过程名</param>/// <param name="paras">参数数组</param>/// <returns>DataReader对象</returns>public static SqlDataReader GetReaderByProc(string procName, params SqlParameter[] paras){return GetReader(procName, CommandType.StoredProcedure, paras);}/// <summary>/// 查询SQL语句获取DataReader/// </summary>/// <param name="strSQL">查询的SQL语句</param>/// <param name="cmdtype">执行类型</param>/// <param name="paras">参数列表,没有参数填入null</param>/// <returns>查询到的DataReader(关闭该对象的时候,自动关闭连接)</returns>public static SqlDataReader GetReader(string strSQL, CommandType cmdtype, params SqlParameter[] paras){SqlDataReader sqldr = null;SqlConnection conn = new SqlConnection(StrConn);SqlCommand cmd = new SqlCommand(strSQL, conn);cmd.CommandType = cmdtype;if (paras != null){cmd.Parameters.AddRange(paras);}conn.Open();//CommandBehavior.CloseConnection的作用是如果关联的DataReader对象关闭,则连接自动关闭sqldr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return sqldr;}#endregion#region 获取DataTable/// <summary>/// 执行查询,返回DataTable对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="cmdtype">Command类型</param>/// <param name="paras">参数数组</param>/// <returns>DataTable对象</returns>public static DataTable GetTable(string strSQL, CommandType cmdtype, params SqlParameter[] paras){DataTable dt = new DataTable(); ;using (SqlConnection conn = new SqlConnection(StrConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (paras != null){da.SelectCommand.Parameters.AddRange(paras);}da.Fill(dt);}return dt;}/// <summary>/// 执行无参数语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>DataTable</returns>public static DataTable GetTable(string strSQL){return GetTable(strSQL, null);}/// <summary>/// 执行有参语句/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数数组</param>/// <returns>DataTable</returns>public static DataTable GetTable(string strSQL, params SqlParameter[] paras){return GetTable(strSQL, CommandType.Text, paras);}#endregion#region 获取DataSet/// <summary>/// 执行查询,返回DataSet对象/// </summary>/// <param name="strSQL">sql语句</param>/// <param name="cmdtype">Command类型</param>/// <param name="paras">参数数组</param>/// <returns>DataSet对象</returns>public static DataSet GetDataSet(string strSQL, CommandType cmdtype, params SqlParameter[] paras){DataSet dt = new DataSet(); ;using (SqlConnection conn = new SqlConnection(StrConn)){SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.SelectCommand.CommandType = cmdtype;if (paras != null){da.SelectCommand.Parameters.AddRange(paras);}da.Fill(dt);}return dt;}/// <summary>/// 执行无参数的SQL/// </summary>/// <param name="strSQL">执行SQL</param>/// <returns>DataSet</returns>public static DataSet GetDataSet(string strSQL){return GetDataSet(strSQL, null);}/// <summary>/// 执行有参数的SQL/// </summary>/// <param name="strSQL">执行SQL</param>/// <param name="paras">参数数组</param>/// <returns>DataSet</returns>public static DataSet GetDataSet(string strSQL, SqlParameter[] paras){return GetDataSet(strSQL, CommandType.Text, paras);}#endregion#region 批量插入数据处理/// <summary>/// 往数据库中批量插入数据/// </summary>/// <param name="sourceDt">数据源表</param>/// <param name="targetTable">服务器上目标表</param>public static void BulkToDB(DataTable sourceDt, string targetTable){SqlConnection conn = new SqlConnection(strConn);SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);   //用其它源的数据有效批量加载sql server表中bulkCopy.DestinationTableName = targetTable;    //服务器上目标表的名称bulkCopy.BatchSize = sourceDt.Rows.Count;   //每一批次中的行数try{conn.Open();if (sourceDt != null && sourceDt.Rows.Count != 0)bulkCopy.WriteToServer(sourceDt);   //将提供的数据源中的所有行复制到目标表中
            }catch (System.Exception ex){throw ex;}finally{conn.Close();if (bulkCopy != null)bulkCopy.Close();}}#endregion#endregion}
}

转载于:https://www.cnblogs.com/LoveQin/p/5355694.html

.Net SqlDbHelper相关推荐

  1. 想在SqlDbHelper.cs类中加的垃圾方法

    虽然没改写SqlDbHelper.cs类的能力,但好不容易想出来的,放着留个纪念~~~~~         /**//// <summary>         /// 执行SQL语句,返回 ...

  2. SqlDbHelper.cs

    封装了批量处理的对象方法 SqlCommandBuilder using System; using System.Data; using System.Data.SqlClient; using S ...

  3. Access SqLDbHelper

    /// <summary> /// 连接Access数据库帮助 /// <appSettings> ///     <add key="DbPath" ...

  4. SqlDBHelper(基础增删改查)

    using System; using System.Collections.Generic; using System.Data.SqlClient;//引用数据库客户端 using System. ...

  5. 【ASP.NET开发】ASP.NET(MVC)三层架构知识的学习总结

    至从使用过一次MVC进行团队开发后,体会到了面向对象开发软件的便利.使用MVC的时候,各个层之间的低耦合使得他们之间的联系非常的第,也就降低了模块之间的依赖程度. 首先介绍一下MVC的意义,和各个层面 ...

  6. WinForm数据源分页技术

    1.编写分页存储过程 USE [Contacts] GO create procedure [dbo].[GetPageData] (@startIndex int, @endIndex int ) ...

  7. SQLSERVER单表CRUD通用方法

    一.适用场景 ①当你书写简单的增删改查心累了 ②当你的项目不考虑并发.高性能 ③当你追求更快速的开发效率 ④当你的业务只涉及单表 二.代码展示 ①单表Insert 1 public bool Inse ...

  8. SqlHelper数据库操作辅助类

    SQLhelper /// <summary>/// 自定义访问通用类/// </summary>public class SqlDbHelper{string connect ...

  9. 换种思路去理解设计模式

    1 前言 看过许多关于设计模式的博客,也读过关于设计模式的书.几乎所有的介绍的开头,直接就引入了"设计模式"或者"某某模式".设计模式到底是因什么而来?这是一个 ...

最新文章

  1. android studio 自动try,Catch Try让我在Android Studio调试中感到困惑
  2. 10.1 掌握大数据-机器学习笔记-斯坦福吴恩达教授
  3. php隐藏文件链接,php隐藏文件实际下载地址的方法
  4. 不是linux内核的国产系统,国产操作系统都是山寨Windows的?为何用Linux内核?
  5. 争做RTC领域标杆——与华为云副总裁薛浩聊聊我们的视频时代
  6. mysql gender_Mysql第一弹
  7. lumen 下使用自定义配置文件
  8. PN结空间电荷区形成原理
  9. 赌一把:整合了30家独立报告后,我发现了2020年的五大安全趋势
  10. git 修改密码_在windows中利用gitblit搭建git服务端
  11. 佳博打印机如何设置热敏打印
  12. java标书_java软件项目投标技术标书【精选】.doc
  13. rx550 黑苹果_为什么黑苹果 amd显卡 特定型号免驱?
  14. HDMI热拔插电路举例说明
  15. 龙芯2k开发板Debian系统安装教程
  16. 行式数据库 VS 列式数据库
  17. Explaining away
  18. Unity中的多光源
  19. FC协议与iSCIS协议详解
  20. 极客学院C#视频教程

热门文章

  1. 关于编程的浅学习与深学习
  2. 加密工具和unlocker的使用
  3. 如何每天自动备份 SourceSafe (转)
  4. 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门)
  5. nsq php,Nsq从入门到实践
  6. 数据库管理系统的组成和结构
  7. Python培训教程:Python内置数据结构之双向队列
  8. Java断点续传(基于socket与RandomAccessFile的实现)
  9. 系列四、SpringMVC响应数据和结果视图
  10. 七牛云内容审核服务被选为「上海首批人工智能创新产品」