SQLHelper---赵晓虎(简洁,全面)
public static class SQLHelper
{
//获取连接字符串,,首先添加对configuration的引用
private static string connStr = ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString;
//ExecuteNonQuery方法----非查询的方法
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
{
//1、创建连接对象
using (SqlConnection conn=new SqlConnection(connStr))
{
//2、创建执行对象
using (SqlCommand cmd=new SqlCommand(sql,conn))
{
//3、判断添加占位符集合
if (parameters!=null)
{
cmd.Parameters.AddRange(parameters);
}
//4、执行操作前一步 打开连接
conn.Open();
//5、执行相应的操作
return cmd.ExecuteNonQuery();
}
}
}
//ExecuteScalar方法-----返回查询结果的第一行第一列
public static object ExecuteScalar(string sql,params SqlParameter[] parameters)
{
//1、创建连接对象
using(SqlConnection conn=new SqlConnection(connStr))
{
//2、创建执行对象
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
//3、判断并添加占位符集合
if(parameters!=null)
{
cmd.Parameters.AddRange(parameters);
}
//4、执行语句前一部打开链接
conn.Open();
//5、执行相应操作
return cmd.ExecuteScalar();
}
}
}
//返回DataTable的方法
public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
{
DataTable table=new DataTable();
//直接交给sqldataadapter执行
using (SqlDataAdapter adapter=new SqlDataAdapter(sql,connStr))
{
//判断并添加占位符集合(利用存储过程),,返回结果
if(parameters!=null)
{
adapter.SelectCommand.Parameters.AddRange(parameters);
}
//将结果填充到table
adapter.Fill(table);
}
return table;
}
public static SqlDataReader ExecuteReader(string sql,params SqlParameter[] parameters)
{
//因为每次都执行返回一行,不用using,,,创建连接
SqlConnection conn=new SqlConnection(connStr);
//创建执行对象
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
if(parameters!=null)
{
cmd.Parameters.AddRange(parameters);
}
try
{
//判断连接对象是否是连接状态,不是就打开
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
//在连接打开的前提下执行读取命令,,随着conn的关闭而关闭
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
//没有可读数据的时候关闭连接变释放资源
catch
{
conn.Close();
conn.Dispose();
throw;
}
}
}
}
SQLHelper---赵晓虎(简洁,全面)的更多相关文章
- asp.net 建多个项目实现三层的实例——读取一张表中的记录条数
学习asp.net两周,通过学习发现,.net和php之间的区别还是蛮大的,比php要复杂一些,开始学习的有些吃力,后来跟着传智播客里的老师学习,渐渐的学到了一些东西. 今天要记录一下.net里的简单 ...
- JavaScript函数的4种调用方法详解
在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...
- QL Server 实用脚本
use MyFirstDB; -- 主要内容 -- SQL Server 实用脚本 -- 1.case语句 -- 2.子查询 -- 3.连接查询 -- 4.脚本变量与流程控制(选择与循环等) -- 5 ...
- Delegate(委托与事件)
Delegate可以当它是一个占位符,比如你在写代码的时候并不知道你将要处理的是什么.你只需要知道你将要引入的参数类型和输出类型是什么并定义它即可.这就是书本上所传达的方法签名必须相同的意思. 系统自 ...
- XML文件注意问题
一.Elements和Descendant Elements 相当于root节点下的子节点,Desendant元素相当于root节点下的所有子节点(包括root.elments下个子节点也包括root ...
- JavaScript高级之函数的四种调用形式
主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...
- 你不知道的JavaScript--Item8 函数,方法,构造函数调用
1.函数调用 Function绝对是JavaScript中的重中之重.在JavaScript中,Function承担了procedures, methods, constructors甚至是class ...
- qconbeijing2017
http://2017.qconbeijing.com/schedule 第一天 (2017年4月16日/星期日) 签到 专题 主题演讲 快速进化的容器生态 微服务与 DevOps 最佳实践(厂商 ...
- python基础学习(一)
一,Python介绍 1,python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打 ...
随机推荐
- TestNG之执行顺序
如果很有个测试方法,并且这几个方法又有先后顺序,那么如果让TestNG按照自己想要的方法执行呢 一.通过Dependencies 1.在测试类中添加Dependencies @Test public ...
- ZBrush中必须记住的常用快捷键
ZBrush是一款数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维雕刻行业.强大的功能离不开便捷的操作,为此ZBrush提供了一系列常用操作快捷键,熟练掌握这些快捷键,可帮助您节省 ...
- java GUI,贷款服务器
本习题来自<java语言程序设计--进阶篇>第30章,网络编程的习题. 题目描述:为一个客户端编写一个服务器.客户端向服务器发送贷款信息(年利率.贷款年限和贷款总额).服务器计算月偿还额和 ...
- POJ 1410 Intersection --几何,线段相交
题意: 给一条线段,和一个矩形,问线段是否与矩形相交或在矩形内. 解法: 判断是否在矩形内,如果不在,判断与四条边是否相交即可.这题让我发现自己的线段相交函数有错误的地方,原来我写的线段相交函数就是单 ...
- HDU 4964 Emmet --模拟
题意:给你一个字符串,要求把它按语法转化成HTML格式. 分析:这题其实不难,就是一个递归的事情,当时忽略了括号嵌套的情况,所以一直WA,后来加上这种情况后就过了.简直醉了. 处理id和class时, ...
- AC日记——阶乘之和 洛谷 P1009(高精度)
题目描述 用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中“!”表示阶乘,例如:5!=5*4*3*2*1. 输入输出格式 输入格式: 一个正整数N. 输出格式: 一个正整数S,表示计算结 ...
- 在同一个机器中安装LoadRunner与QTP
若你计划在测试机上安装LoadRunner并且测试机上已经安装了QTP,类似这样的情况可能会出现一些冲突现象,若QTP与LR必须并存在同一测试机上,那么请确保先安装Loadrunner以及所有的LR补 ...
- Spring之AOP
package org.zln.module.test3_aop.interceptor; import org.aspectj.lang.ProceedingJoinPoint; import or ...
- Rdlc报表出现空白页解决方法(转)
在使用RDLC报表时,碰到这种情况:当只有一页数据时,报表确显示两页,第二页除了报表头之外数据为空.然后,当有多页数据时,最后一页为空. 这个问题很奇怪,网上有很多解决方案,以下的方法可以解决此问题. ...
- AndroidStudio .gitinore编写
# Built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class */R.ja ...