SqlDbHelper.cs
封装了批量处理的对象方法 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相关推荐
- 想在SqlDbHelper.cs类中加的垃圾方法
虽然没改写SqlDbHelper.cs类的能力,但好不容易想出来的,放着留个纪念~~~~~ /**//// <summary> /// 执行SQL语句,返回 ...
- ADO.NET基本运用随笔
1:对数据库进行增删改操作,利用sqlCommand类的ExecuteNonQuery()方法. 2:对数据库进行连接式查询操作,用sqlCommand类的ExecuteReader()方法. 3:对 ...
- vs2003复制一个web窗体,没有更改指向同一个cs 文件,引发大问题
今天我在原来的考试系统的出题模块中,input模块,因为增加的一个web窗体编译有问题,于是就复制了原来的启动项页面input,再改了名字为set1,然后在set1页面上删除了控件和代码,再把set1 ...
- php 开发cs,PHP开发CS结构的技巧
PHP开发CS结构的技巧 PHP是一门高效的网络编程语言,由于它具有编写灵活.运行快速等优点,迅速成为Web程序员的`首选语言.以下是小编为大家搜索整理的PHP开发CS结构的技巧,希望能给大家带来帮助 ...
- vs中将网站aspx.cs文件打包成一个dll
vs中将网站aspx.cs文件打包成一个dll 23小时前 vs中将网站asp.net cs文件打包成一个dll. 在vs2008以上的版本中可以建立web应用来开发网站,这样网站aspx.cs文件[ ...
- 短信编码类无错版PDUdecoding.cs
/ ///程 序 员:武志文(蚕蛹) /// sillnet163.net ///文 件:PDUdecoding.cs ///概 要:针对国内短信编码(USC2) /// ...
- cs架构嵌入bs_CS与BS架构区别、比较、及现状与趋势分析
一.简介 CS即Client/Server(客户机/服务器)结构,C/S结构在技术上很成熟,它的主要特点是交互性强.具有安全的存取模式.网络通信量低.响应速度快.利于处理大量数据.但是该结构的程序是 ...
- 把JS 脚本嵌入CS运行
下面这段视频,是让您知道怎样把播放器的javascript放入C#类别中.在调用这个类别时,只传入相关的参数,即可运行.一时类别封装了,在前台xxx.aspx或xxx.aspx.cs看不到播放器的代码 ...
- Asp.Net Core 入门(一)——Program.cs做了什么
ASP.NET Core 是微软推出的一种全新的跨平台开源 .NET 框架,用于在 Windows.Mac 或 Linux 上生成基于云的新式 Web 应用程序.国内目前关于Asp.Net Core的 ...
最新文章
- C# winform程序免安装.net framework在XP/win7/win10环境运行
- Microsoft SQL Server 2005数据库安装
- Yolov5实现道路裂缝检测,附数据集
- for里面嵌套if_求求你们了,别再写满屏的 if/ else 了!
- 优化element ui中的弹框样式
- 规模数据导入高效方式︱将数据快速读入R—readr和readxl包
- txt代码文件怎么转换_pdf怎么转换成txt格式?小说党速来get
- 离散数学中析取范式,以及合取范式的个人理解
- (第六章)hive之查询
- Contrastive Clustering
- MAC上有哪些优秀的日常软件| 入门级Mac OS 用户必备软件
- Ubuntu 18.04 安装 php7.4 --enable-maintainer-zts
- CSDN插件还能画图、加速GitHub下载?分享几个插件给你
- python批量数据处理脚本——批量删除文件
- Qt获取图片色值(提供源码)
- 26.JavaScript对象和基础类型之间的转换、hint、Symbol.toPrimitive、toString、valueOf
- A5931三相无传感器 BLDC 风扇驱动器 IC
- 嵌入式为什么要引入操作系统
- storm 分布式的实时计算系统
- 2017工作总结及2018工作计划
热门文章
- iphone手机 配置对比
- 教程 | 10分钟入门禅绕画 (上)
- Host is not allowed to connect to this MySQL server的解决办法
- Linux下修改ip地址,网关
- c语言单源最短路径问题实验报告,单源最短路径问题Dijkstra算法的c语言实现
- python贪心算法最短路径_贪心算法---最短路径问题
- win7硬盘分区软件_为什么需要为硬盘分区?
- 青龙面板羊毛脚本之太太乐积分话费
- 大话2点卡稳定服务器,大话西游2:当年他承包兄弟们的点卡 如今找回了17年前的号...
- 2014天猫双11内部员工购物通道