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. input lable水平对齐

    1.CSS <style type="text/css">       input,label { vertical-align:middle;} </style ...

  2. nyoj 44 子串和 简单动态规划

    子串和 时间限制:5000 ms  |  内存限制:65535 KB 难度:3   描述 给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最 ...

  3. 必须知道的.net(字段、属性和方法)

    1.字段 通常定义为private(封装原则) 2.属性(property) 通常定义为public,表示类的对外成员.具有可读可写属性,通过get和set访问器实现 3.索引器(indexer) C ...

  4. 2012Chengdu B (快速组合数)

    B - Candy Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  5. maven 向本地私库导入jar

    mvn install:install-file -DgroupId=<your_group_name> -DartifactId=<your_artifact_name> - ...

  6. 实体ip 虚拟ip 固定ip 动态ip

    实体 IP:在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义.一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP ...

  7. Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    转载请注明出处http://blog.csdn.net/xiaanming/article/details/11066685 今天给大家带来一个很实用的小控件ClearEditText,就是在Andr ...

  8. iOS开发——项目篇—高仿百思不得姐

    01 一.包装为导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewControll ...

  9. All Kind Of Conference(随时更新...)

    收集一些前端开发的各种会议,里面有视频或者PPT,随时查看都还是很有收获的.还有要向这些演讲的前辈看齐- AC 2015:http://ac.alloyteam.com/2015/ AC 2016:h ...

  10. 跟着百度学PHP[4]OOP面对对象编程-5-内部引用$this

    $this就是对象内部代表这个对象的引用 可以调用被封装的方法或者属性! <?php class Person{ private $name; "; var $sex; functio ...