封装了批量处理的对象方法 SqlCommandBuilder

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace ConsoleApplication2
{public class SqlDbHelper{/// <summary>/// 连接字符串/// </summary>public static readonly string connectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;#region ExecuteNonQuery命令/// <summary>/// 对数据库执行增、删、改命令/// </summary>/// <param name="safeSql">T-Sql语句</param>/// <returns>受影响的记录数</returns>public static int ExecuteNonQuery(string safeSql){using (SqlConnection Connection = new SqlConnection(connectionString)){Connection.Open();SqlTransaction trans = Connection.BeginTransaction();try{SqlCommand cmd = new SqlCommand(safeSql, Connection);cmd.Transaction = trans;if (Connection.State != ConnectionState.Open){Connection.Open();}int result = cmd.ExecuteNonQuery();trans.Commit();return result;}catch{trans.Rollback();return 0;}}}/// <summary>/// 对数据库执行增、删、改命令/// </summary>/// <param name="sql">T-Sql语句</param>/// <param name="values">参数数组</param>/// <returns>受影响的记录数</returns>public static int ExecuteNonQuery(string sql, SqlParameter[] values){using (SqlConnection Connection = new SqlConnection(connectionString)){Connection.Open();SqlTransaction trans = Connection.BeginTransaction();try{SqlCommand cmd = new SqlCommand(sql, Connection);cmd.Transaction = trans;cmd.Parameters.AddRange(values);if (Connection.State != ConnectionState.Open){Connection.Open();}int result = cmd.ExecuteNonQuery();trans.Commit();return result;}catch (Exception ex){trans.Rollback();return 0;}}}#endregion#region ExecuteScalar命令/// <summary>/// 查询结果集中第一行第一列的值/// </summary>/// <param name="safeSql">T-Sql语句</param>/// <returns>第一行第一列的值</returns>public static int ExecuteScalar(string safeSql){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();SqlCommand cmd = new SqlCommand(safeSql, Connection);int result = Convert.ToInt32(cmd.ExecuteScalar());return result;}}/// <summary>/// 查询结果集中第一行第一列的值/// </summary>/// <param name="sql">T-Sql语句</param>/// <param name="values">参数数组</param>/// <returns>第一行第一列的值</returns>public static int ExecuteScalar(string sql, SqlParameter[] values){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();SqlCommand cmd = new SqlCommand(sql, Connection);cmd.Parameters.AddRange(values);int result = Convert.ToInt32(cmd.ExecuteScalar());return result;}}#endregion#region ExecuteReader命令/// <summary>/// 创建数据读取器/// </summary>/// <param name="safeSql">T-Sql语句</param>/// <param name="Connection">数据库连接</param>/// <returns>数据读取器对象</returns>public static SqlDataReader ExecuteReader(string safeSql, SqlConnection Connection){if (Connection.State != ConnectionState.Open)Connection.Open();SqlCommand cmd = new SqlCommand(safeSql, Connection);SqlDataReader reader = cmd.ExecuteReader();return reader;}/// <summary>/// 创建数据读取器/// </summary>/// <param name="sql">T-Sql语句</param>/// <param name="values">参数数组</param>/// <param name="Connection">数据库连接</param>/// <returns>数据读取器</returns>public static SqlDataReader ExecuteReader(string sql, SqlParameter[] values, SqlConnection Connection){if (Connection.State != ConnectionState.Open)Connection.Open();SqlCommand cmd = new SqlCommand(sql, Connection);cmd.Parameters.AddRange(values);SqlDataReader reader = cmd.ExecuteReader();return reader;}#endregion#region ExecuteDataTable命令/// <summary>/// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataTable/// </summary>/// <param name="type">命令类型(T-Sql语句或者存储过程)</param>/// <param name="safeSql">T-Sql语句或者存储过程的名称</param>/// <param name="values">参数数组</param>/// <returns>结果集DataTable</returns>public static DataTable ExecuteDataTable(CommandType type, string safeSql, params SqlParameter[] values){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(safeSql, Connection);cmd.CommandType = type;SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(ds);return ds.Tables[0];}}/// <summary>/// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataTable/// </summary>/// <param name="safeSql">T-Sql语句</param>/// <returns>结果集DataTable</returns>public static DataTable ExecuteDataTable(string safeSql){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(safeSql, Connection);SqlDataAdapter da = new SqlDataAdapter(cmd);try{da.Fill(ds);}catch (Exception ex){}return ds.Tables[0];}}/// <summary>/// 执行指定数据库连接对象的命令,指定存储过程参数,返回DataTable/// </summary>/// <param name="sql">T-Sql语句</param>/// <param name="values">参数数组</param>/// <returns>结果集DataTable</returns>public static DataTable ExecuteDataTable(string sql, params SqlParameter[] values){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(sql, Connection);cmd.CommandTimeout = 0;cmd.Parameters.AddRange(values);SqlDataAdapter da = new SqlDataAdapter(cmd);da.Fill(ds);return ds.Tables[0];}}#endregion#region GetDataSet命令/// <summary>/// 取出数据/// </summary>/// <param name="safeSql">sql语句</param>/// <param name="tabName">DataTable别名</param>/// <param name="values"></param>/// <returns></returns>public static DataSet GetDataSet(string safeSql, string tabName, params SqlParameter[] values){using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();DataSet ds = new DataSet();SqlCommand cmd = new SqlCommand(safeSql, Connection);if (values != null)cmd.Parameters.AddRange(values);SqlDataAdapter da = new SqlDataAdapter(cmd);try{da.Fill(ds, tabName);}catch (Exception ex){}return ds;}}#endregion#region ExecureData 命令/// <summary>/// 批量修改数据/// </summary>/// <param name="ds">修改过的DataSet</param>/// <param name="strTblName">表名</param>/// <returns></returns>public static int ExecureData(DataSet ds, string strTblName){try{//创建一个数据库连接using (SqlConnection Connection = new SqlConnection(connectionString)){if (Connection.State != ConnectionState.Open)Connection.Open();//创建一个用于填充DataSet的对象SqlCommand myCommand = new SqlCommand("SELECT * FROM " + strTblName, Connection);SqlDataAdapter myAdapter = new SqlDataAdapter();//获取SQL语句,用于在数据库中选择记录myAdapter.SelectCommand = myCommand;//自动生成单表命令,用于将对DataSet所做的更改与数据库更改相对应SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);return myAdapter.Update(ds, strTblName);  //更新ds数据}}catch (Exception err){throw err;}}#endregion}
}

测试 SqlCommandBuilder 如下:

 class Program{static void Main(string[] args){DataSet dataSet = SqlDbHelper.GetDataSet("Select* From userinfo ","userinfo");DataTable tblData = dataSet.Tables[0];DataRow row = tblData.NewRow();row["name"] = "黄家驹";tblData.Rows.Add(row);DataRow row1 = tblData.NewRow();row1["name"] = "张国荣";tblData.Rows.Add(row1);//tblData.Rows[0]["name"] = "a1";//tblData.Rows[1]["name"] = "b2";//tblData.Rows[0].Delete();//tblData.Rows[1].Delete();SqlDbHelper.ExecureData(dataSet, "userinfo");Console.Read();}

SqlDbHelper.cs相关推荐

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

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

  2. ADO.NET基本运用随笔

    1:对数据库进行增删改操作,利用sqlCommand类的ExecuteNonQuery()方法. 2:对数据库进行连接式查询操作,用sqlCommand类的ExecuteReader()方法. 3:对 ...

  3. vs2003复制一个web窗体,没有更改指向同一个cs 文件,引发大问题

    今天我在原来的考试系统的出题模块中,input模块,因为增加的一个web窗体编译有问题,于是就复制了原来的启动项页面input,再改了名字为set1,然后在set1页面上删除了控件和代码,再把set1 ...

  4. php 开发cs,PHP开发CS结构的技巧

    PHP开发CS结构的技巧 PHP是一门高效的网络编程语言,由于它具有编写灵活.运行快速等优点,迅速成为Web程序员的`首选语言.以下是小编为大家搜索整理的PHP开发CS结构的技巧,希望能给大家带来帮助 ...

  5. vs中将网站aspx.cs文件打包成一个dll

    vs中将网站aspx.cs文件打包成一个dll 23小时前 vs中将网站asp.net cs文件打包成一个dll. 在vs2008以上的版本中可以建立web应用来开发网站,这样网站aspx.cs文件[ ...

  6. 短信编码类无错版PDUdecoding.cs

    / ///程 序 员:武志文(蚕蛹) ///          sillnet163.net ///文    件:PDUdecoding.cs ///概    要:针对国内短信编码(USC2) /// ...

  7. cs架构嵌入bs_CS与BS架构区别、比较、及现状与趋势分析

    一.简介  CS即Client/Server(客户机/服务器)结构,C/S结构在技术上很成熟,它的主要特点是交互性强.具有安全的存取模式.网络通信量低.响应速度快.利于处理大量数据.但是该结构的程序是 ...

  8. 把JS 脚本嵌入CS运行

    下面这段视频,是让您知道怎样把播放器的javascript放入C#类别中.在调用这个类别时,只传入相关的参数,即可运行.一时类别封装了,在前台xxx.aspx或xxx.aspx.cs看不到播放器的代码 ...

  9. Asp.Net Core 入门(一)——Program.cs做了什么

    ASP.NET Core 是微软推出的一种全新的跨平台开源 .NET 框架,用于在 Windows.Mac 或 Linux 上生成基于云的新式 Web 应用程序.国内目前关于Asp.Net Core的 ...

最新文章

  1. C# winform程序免安装.net framework在XP/win7/win10环境运行
  2. Microsoft SQL Server 2005数据库安装
  3. Yolov5实现道路裂缝检测,附数据集
  4. for里面嵌套if_求求你们了,别再写满屏的 if/ else 了!
  5. 优化element ui中的弹框样式
  6. 规模数据导入高效方式︱将数据快速读入R—readr和readxl包
  7. txt代码文件怎么转换_pdf怎么转换成txt格式?小说党速来get
  8. 离散数学中析取范式,以及合取范式的个人理解
  9. (第六章)hive之查询
  10. Contrastive Clustering
  11. MAC上有哪些优秀的日常软件| 入门级Mac OS 用户必备软件
  12. Ubuntu 18.04 安装 php7.4 --enable-maintainer-zts
  13. CSDN插件还能画图、加速GitHub下载?分享几个插件给你
  14. python批量数据处理脚本——批量删除文件
  15. Qt获取图片色值(提供源码)
  16. 26.JavaScript对象和基础类型之间的转换、hint、Symbol.toPrimitive、toString、valueOf
  17. A5931三相无传感器 BLDC 风扇驱动器 IC
  18. 嵌入式为什么要引入操作系统
  19. storm 分布式的实时计算系统
  20. 2017工作总结及2018工作计划

热门文章

  1. iphone手机 配置对比
  2. 教程 | 10分钟入门禅绕画 (上)
  3. Host is not allowed to connect to this MySQL server的解决办法
  4. Linux下修改ip地址,网关
  5. c语言单源最短路径问题实验报告,单源最短路径问题Dijkstra算法的c语言实现
  6. python贪心算法最短路径_贪心算法---最短路径问题
  7. win7硬盘分区软件_为什么需要为硬盘分区?
  8. 青龙面板羊毛脚本之太太乐积分话费
  9. 大话2点卡稳定服务器,大话西游2:当年他承包兄弟们的点卡 如今找回了17年前的号...
  10. 2014天猫双11内部员工购物通道