简单的SqlHelper
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的更多相关文章
- 简单的sqlhelper的学习日志
一:今天做了一个简单的sqlhelper,还有调用,将今天学的内容总结一下,解决方案如下: 二:对应的sqlhelper的内容: using System; using System.Collecti ...
- SqlHelper简单实现(通过Expression和反射)1.引言
之前老大说要改变代码中充斥着各种Select的Sql语句字符串的情况,让我尝试着做一个简单的SqlHelper,要具有以下功能: 1.不要在业务代码中暴露DataTable或者DataSet类型: 2 ...
- "类工厂模式"改写SqlHelper
看到标题您一定很疑惑,23种经典设计模式什么时候多了一个"类工厂模式",稍等,请听我慢慢道来. 实践是检验真理的唯一途径.最近用了"类工厂模式"改写了我公司的S ...
- 牛腩新闻发布系统(二):SQLHelper重构(二)
导读:在上一篇博客中,介绍了简单的SQLHelper重构,即数据库链接,打开和关闭链接的优化等.现在,将介绍参数化查询和执行命令类型的改造. 一.必要性 1,参数化查询 在上篇博客中,在查询的时候,仅 ...
- 图解“管道过滤器模式”应用实例:SOD框架的命令执行管道
管道和过滤器 管道和过滤器是八种体系结构模式之一,这八种体系结构模式是:层.管道和过滤器.黑板.代理者.模型-视图-控制器(MVC) 表示-抽象-控制(PAC).微核.映像. 管道和过滤器适用于需要渐 ...
- Asp.Net MVC<一> : 三层架构、MVC
MVC.MVP.MVVM.Angular.js.Knockout.js.Backbone.js.React.js.Ember.js.Avalon.js.Vue.js 概念摘录 认清Android框架 ...
- 如何在ASP.NET 5中使用ADO.NET
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ASP.NET 5是一个全新的平台,在这个平台上也带来一些全新的函数库.不过这并非意味 ...
- 【WCF 1】WCF框架宏观了解
导读:使用WCF框架爱开发项目也有很长一段时间了,最开始的时候,是理解的不深,所以不写博客进行总结.后来是项目赶,发现需要总结的有很多,一直没有把WCF排上日程,尤其是最近研究EF这一块,更是研究了一 ...
- html + ashx 实现Ajax省市联动
基本思路:1.了解数据库中省和市的表结构及关联主键 2.创建html页面及select标签 3.通过ajax向ashx(一般处理程序)发送后台请求完成联动效果 表结构: 这里,开始创建一个命为demo ...
随机推荐
- 接收对 http://192.168.1.18:8001/ObtainData/Service 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。
[2015/8/5 19:28:49]错误信息:接收对 http://192.168.1.18:8001/ObtainData/Service 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定 ...
- Service Trace Viewer Tool (SvcTraceViewer.exe)
Service Trace Viewer Tool <?xml version="1.0" encoding="utf-8" ?> <conf ...
- vector,list,deque容器的迭代器简单介绍
我们知道标准库中的容器有vector,list和deque.另外还有slist,只不过它不是标准容器.而谈到容器,我们不得不知道进行容器一切操作的利器---迭代器.而在了解迭代器之前,我们得先知道每个 ...
- 数据结构(莫队算法):国家集训队2010 小Z的袜子
[题目描述] 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到 ...
- netstat 命令state值
1.LISTENING状态 FTP服务启动后首先处于侦听(LISTENING)状态. State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接.就像你房子的 ...
- Windows进程
一.Windows进程 1.进程 进程是一种容器,包含了应用程序实例的各种资源. 2.Windows进程的一些特点 2.1.进程中包含了执行代码等资源 2.2.进程都具有私有的地址空间 2.3.每个进 ...
- Spring IOC配置与应用
1. FAQ:不给提示: a) window – preferences – myeclipse – xml – xml catalog b) User Specified E ...
- MenuDrawer的使用
---恢复内容开始--- MenuDrawer框架是一个可以实现上下左右滑动的框架,在使用中可以在xml文件中配置也可以在java代码中实现效果的配置 可以以jar的形式或依赖的形式存在 用 ...
- UVa1151 Buy or Build
填坑(p.358) 以前天真的以为用prim把n-1条边求出来就可以 现在看来是我想多了 #include<cstdio> #include<cstring> #include ...
- 用ChooseALicense帮自己选一个开源license,然后用AddALicense给自己的github自动加上license文件
在我之前的一篇博客里面介绍过tl;drLegal ——开源软件license的搜索引擎,可以很方便的查询各种license,并且给出了很简洁的解释.今天又发现了另外一个帮助你选择你的开源软件licen ...