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 = ;
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 != )
bulkCopy.WriteToServer(sourceDt); //将提供的数据源中的所有行复制到目标表中
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
conn.Close();
if (bulkCopy != null)
bulkCopy.Close();
} } #endregion #endregion
}
}

.Net SqlDbHelper的更多相关文章

  1. ASP.NET常用的SqlDbHelper类

    请引用 using System.Data;using System.Data.SqlClient; 两个命名空间. 可以满足常用的数据集,读取多条数据,以及增删改操作 代码: /// <sum ...

  2. sqldbhelper

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data. ...

  3. SqlDBHelper常用方法

    /*============================================================= *.net连接数据库常用方法 *Author : dongny,Li * ...

  4. SqlDbHelper备份,做项目时方便应用(目前不太全,把自己项目中的逐渐转移过来)

    ****************************************** 这是官网新闻左侧类别那部分用到的 **************************************** ...

  5. C# 操作数据库常用的 SqlDbHelper

    原博客园转载于   https://www.cnblogs.com/felix-wang/p/6742785.html using System; using System.Collections.G ...

  6. 返回泛型集合的SqlDBHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using Entity; ...

  7. 重拾MVC——第一天:数据库连接与SqlDbHelper

    这个 SqlDbHelper 是我参考网上的和以前用过的 SqlDbHelper 自己写的一个非常简单的东西,主要是记录自己的学习情况 首先在Web.config中配置数据库连接字符串: <co ...

  8. ASP.NET数据库连接类(SqlDBHelper)

    第一步:创建一个名为SqlDBHelper的类,用来作为联通数据库和系统之间的桥梁. 第二步:引入命名空间,如果System.Configuration.System.Transcations这两个命 ...

  9. SQLSERVER单表CRUD通用方法

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

随机推荐

  1. Ajax前台调用后台方法、AJAX Pro2(回调函数)

    //获取分店 function cityResult() { if (cityName != "") { $("#ddlcity_").find("o ...

  2. HDU 5592

    原题: http://acm.hdu.edu.cn/showproblem.php?pid=5592 线段树的变形,先说思路. 题目中给出了当前节点之前的逆序对数,则p[i]-p[i-1]就是对于p[ ...

  3. BZOJ2599——[IOI2011]Race

    0.题意:给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小. 1.分析:水题一道,一波树分治就好 我们可以发现这个题的K是比较小的,才100w,那么我们可以树分治一下,在遍历每一棵子树的 ...

  4. UOJ#35 —— 后缀排序

    1.题目大意:后缀数组模板题 2.分析:汝佳的书上的代码的有bug,还有那个n是字符串长度+1,''也要加入排序的 存个模板QAQ #include <cstdio> #include & ...

  5. Reflow(渲染)和Repaint(重绘)

    Reflow(渲染):对于DOM结构中的各个元素都有自己的盒模型,浏览器根据各种样式(浏览器的.开发人员定义的等)来计算,并根据计算结果将元素放到它该出现的位置,这个过程称之为reflow. refl ...

  6. python 函数式编程工具

    有三个内置函数与列表一起使用时非常有用:filter().map()和reduce(). 1. filter(function, sequence)返回的序列由function(item)结果为真的元 ...

  7. OAuth 2.0攻击面与案例总结

    本文整理了OAuth 2.0的攻击面+实际案例+辅助测试代码. OAuth流程 本文以两种广泛使用的方案为标准展开..如对流程不了解,请先移步学习: 理解OAuth 2.0 Authorization ...

  8. Python自动化之线程进阶篇

    拓展知识 什么是CPU-bound(计算密集型) 和I/O bound(I/O密集型) ? I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CP ...

  9. 解决ubuntu下安装mysql使用service无法启动问题

    启动的时候发现service mysql start Rather than invoking init scripts through /etc/init.d, use the service(8) ...

  10. 交叉编译alsa声卡驱动

    變異成靜態 ./configure --target=arm-linux --enable-shared=no --enable-static=yes 編譯成動態 ./configure --targ ...