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. Windows窗口样式速查参考,Delphi窗口控件的风格都有它们来决定(附Delphi何时用到它们,并举例说明)good

    /* 窗口样式参考列表(都是GetWindowLong的GWL_STYLE风格,都是TCreateParams.Sytle的一部分),详细列表如下:https://msdn.microsoft.com ...

  2. HDU-3854 LOOPS

    http://acm.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memo ...

  3. House Robber II——Leetcode

    After robbing those houses on that street, the thief has found himself a new place for his thievery ...

  4. HTML---网页编程(2)

    前言 接着前面的HTML-网络编程1)来学习吧~~~ 色彩的表示 在计算机显示器中,使用红(red).绿(green).蓝(blue)3种颜色来构成各种各样的颜色.颜色的种类有16,256及65536 ...

  5. 关于OC头文件互相引用的问题

    在OC中头文件互相引用是很常见的一件事,如: A的头文件#import "B.h" 而B的头文件#import "A.h" 这个时候就会出现意想不到的问题.系统 ...

  6. Google财经

    本博文的主要内容有 .Google财经的介绍   .市场    .新闻 .投资组合新闻   .投资组合 1.Google财经的介绍 https://zh.wikipedia.org/wiki/Goog ...

  7. top N彻底解秘

    本博文内容: 1.基础Top N算法实战 2.分组Top N算法实战 3.排序算法RangePartitioner内幕解密 1.基础Top N算法实战 Top N是排序,Take是直接拿出几个元素,没 ...

  8. C# 程序集 与 反射

    程序集 对于C#程序员来说一定不陌生,不就是VS生成的那些exe,dll么.是的,程序集(.net中exe与dll的区别就是exe有程序接入口,即Main函数)就是.net框架下,可以被CLR加载并运 ...

  9. 用if做了一个简单的猜拳游戏(做的不好还请指点,谢谢!)

    #include "stdio.h" #include "stdlib.h" #include "time.h" //随机函数的头文件 ma ...

  10. javascript数组基本方法

    一.数组方法 1)concat 该方法用于连接两个或多个数组,返回连接成的新数组的副本,不会改变现有数组 [1,2,3].concat(5,6);//返回[1,2,3,5,6] 2)join 用于把数 ...