namespace Login
{
class SqlHelper
{ //连接数据库的字符串
//static string dataConnection = "server=***-PC;database=HeiMa;uid=sa;pwd=********";
//使用配置文件连接数据库的方法
//1.WinForm项目,请添加对“System.Configuration”的引用
//2.对配置文件connectionStrings节进行读取
static string dataConnection = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; #region 返回一张执行查询的表+static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
/// <summary>
/// 返回一张执行查询的表
/// </summary>
/// <param name="sql">执行的数据库查询语句</param>
/// <param name="param">添加入查询语句的参数(参数化查询)</param>
/// <returns>返回执行的一张结果集的表</returns>
public static DataTable ExecuteDataTable(string sql, params SqlParameter[] param)
{ //创建一个临时数据集,存在内存中
DataSet ds = new DataSet(); //创建一个适配器并连接数据库通道
SqlDataAdapter sda = new SqlDataAdapter(sql, dataConnection); //给适配器对象的查询命令添加参数
sda.SelectCommand.Parameters.AddRange(param); //捕获异常,为的是不知道返回是否有数值
try
{
sda.Fill(ds); //如果有返回数值,则填充
DataTable dt = ds.Tables[];//获得第一张表
return dt;
}
catch
{
return null;//没有表时,返回空
} }
#endregion
#region 返回受影响的行数+static int ExecuteNonQuery(string sql, params SqlParameter[] param)
/// <summary>
/// 返回受影响的行数
/// </summary>
/// <param name="sql">执行数据库的查询语句</param>
/// <param name="param">传递参数(参数化查询)</param>
/// <returns>返回受影响的行数</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
{
//创建连接数据库的通道
using (SqlConnection conns = new SqlConnection(dataConnection))
{ //创建执行命令对象,并连接数据库通道
using (SqlCommand cmd = new SqlCommand(sql, conns))
{ //将参数添加到命令对象中
cmd.Parameters.AddRange(param);
//打开数据库
conns.Open();
//返回受影响的行数
return cmd.ExecuteNonQuery(); }
} } #endregion #region 返回查询结果的第一行第一列的值+static object ExecuteScalar(string sql, params SqlParameter[] param)
/// <summary>
/// 返回查询结果的第一行第一列的值
/// </summary>
/// <param name="sql">传入数据库查询语句</param>
/// <param name="param">传入数据库查询需要的查询参数</param>
/// <returns>返回查询结果的第一行第一列的</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] param)
{
using (SqlConnection conn = new SqlConnection(dataConnection))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{ //传入参数
cmd.Parameters.AddRange(param);
conn.Open();
return cmd.ExecuteScalar();
}
} }
#endregion }
}

简单的SqlHelper的更多相关文章

  1. 简单的sqlhelper的学习日志

    一:今天做了一个简单的sqlhelper,还有调用,将今天学的内容总结一下,解决方案如下: 二:对应的sqlhelper的内容: using System; using System.Collecti ...

  2. SqlHelper简单实现(通过Expression和反射)1.引言

    之前老大说要改变代码中充斥着各种Select的Sql语句字符串的情况,让我尝试着做一个简单的SqlHelper,要具有以下功能: 1.不要在业务代码中暴露DataTable或者DataSet类型: 2 ...

  3. "类工厂模式"改写SqlHelper

    看到标题您一定很疑惑,23种经典设计模式什么时候多了一个"类工厂模式",稍等,请听我慢慢道来. 实践是检验真理的唯一途径.最近用了"类工厂模式"改写了我公司的S ...

  4. 牛腩新闻发布系统(二):SQLHelper重构(二)

    导读:在上一篇博客中,介绍了简单的SQLHelper重构,即数据库链接,打开和关闭链接的优化等.现在,将介绍参数化查询和执行命令类型的改造. 一.必要性 1,参数化查询 在上篇博客中,在查询的时候,仅 ...

  5. 图解“管道过滤器模式”应用实例:SOD框架的命令执行管道

    管道和过滤器 管道和过滤器是八种体系结构模式之一,这八种体系结构模式是:层.管道和过滤器.黑板.代理者.模型-视图-控制器(MVC) 表示-抽象-控制(PAC).微核.映像. 管道和过滤器适用于需要渐 ...

  6. Asp.Net MVC<一> : 三层架构、MVC

    MVC.MVP.MVVM.Angular.js.Knockout.js.Backbone.js.React.js.Ember.js.Avalon.js.Vue.js 概念摘录 认清Android框架 ...

  7. 如何在ASP.NET 5中使用ADO.NET

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ASP.NET 5是一个全新的平台,在这个平台上也带来一些全新的函数库.不过这并非意味 ...

  8. 【WCF 1】WCF框架宏观了解

    导读:使用WCF框架爱开发项目也有很长一段时间了,最开始的时候,是理解的不深,所以不写博客进行总结.后来是项目赶,发现需要总结的有很多,一直没有把WCF排上日程,尤其是最近研究EF这一块,更是研究了一 ...

  9. html + ashx 实现Ajax省市联动

    基本思路:1.了解数据库中省和市的表结构及关联主键 2.创建html页面及select标签 3.通过ajax向ashx(一般处理程序)发送后台请求完成联动效果 表结构: 这里,开始创建一个命为demo ...

随机推荐

  1. SQL 能做什么?

    SQL 能做什么? SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL ...

  2. request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会

    request.getParameter(). request.getInputStream().request.getReader()这三种方法是有冲突的,因为流只能被读一次.比如:当form表单内 ...

  3. [cocos2d demo]新科娘收集水表

    讲述的是新科娘在沙滩上遇到一大波水表的故事... 下载地址 链接:http://pan.baidu.com/share/link?shareid=2141087190&uk=293716439 ...

  4. To enable integrated Windows authentication in Windows Vista/IIS 7

    https://msdn.microsoft.com/en-us/library/x8a5axew.aspx Log on to the Web server by using an administ ...

  5. c++学习笔记(2)类的声名与实现的分离及内联函数

    一.类的声名与实现的分离: 和c函数声明与实现分离类似 有.h : 类的声明 .cpp : 类的实现 在在一个类的cpp中应该包含本类的.h文件 在cpp中类的使用:例: //Circle类 //Ci ...

  6. BZOJ1057 [ZJOI2007]棋盘制作(极大化思想)

    1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 1848  Solved: 936 [Submit][Sta ...

  7. 在LINUX终端和VIM下复制粘贴

    http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/ 在GUI界面下,我们可以很自由的复制粘贴.但是在字符界面下,我们不得不用 ...

  8. Google桌面搜索引擎

    本博文的主要内容有 .Google桌面搜索引擎的下载 .Google桌面搜索引擎的安装 .Google桌面搜索引擎的使用 1.Google桌面搜索引擎的下载   http://download.csd ...

  9. Pipe - POJ 1039(线段相交交点)

    题目大意:有一个不反光并且不透光的管道,现在有一束光线从最左端进入,问能达到的最右端是多少,输出x坐标.   分析:刚开始做是直接枚举两个点然后和管道进行相交查询,不过这样做需要考虑的太多,细节不容易 ...

  10. 使用ECharts报表统计公司考勤加班,大家加班多吗?

    最近个项目已经连续加班1个月多,因为公司经常有在外面客户现场或出差的情况,人事每个月初会把上个月的份考勤打卡记录全部发出来,让我们对自己的考勤,突然想到可根据大家打卡时间记录统计每天工作时间,看大家是 ...