using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Data.SqlClient;

/// <summary>
///SqlHelper 的摘要说明
/// </summary>
public class SqlDataHelper
{
public SqlDataHelper()
{

}

//数据库连接字符串
private readonly static string connectionString = ConfigurationManager.ConnectionStrings["default"].ToString();

/// <summary>
/// 执行增,删,改的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(CommandType commandType, string cmdText, SqlParameter[] para)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
int no = Convert.ToInt32(cmd.ExecuteNonQuery());
cmd.Parameters.Clear();
return no;
}
}

/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>读取器SqlDataReader</returns>
public static SqlDataReader ExecuteReader(CommandType commandType, string cmdText, SqlParameter[] para)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlDataReader dr = null;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
}

/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>数据集</returns>
public static DataSet GetDataSet(CommandType commandType, string cmdText, SqlParameter[] para)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = cmdText;
da.SelectCommand.CommandType = commandType;
if (para != null)
{
da.SelectCommand.Parameters.AddRange(para);
}
DataSet ds = new DataSet();
conn.Open();
da.Fill(ds);
da.SelectCommand.Parameters.Clear();
return ds;
}
}

/// <summary>
/// 执行查询的方法,支持存储过程
/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>返回查询结果的第一行第一列</returns>
public static object GetScalar(CommandType commandType, string cmdText, SqlParameter[] para)
{
object result = null;
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
result = cmd.ExecuteScalar();
cmd.Parameters.Clear();
}
return result;
}

}

SqlDataHelper的更多相关文章

  1. Android LitePal 神一般的数据库框架 超级好用

    参考: Android数据库高手秘籍(一)--SQLite命令 Android数据库高手秘籍(二)--创建表和LitePal的基本用法 Android数据库高手秘籍(三)--使用LitePal升级表 ...

  2. 项目中的web api知识总结

    最近在做公司的项目,自己负责webapi的框架的搭建与开发,最近很忙,一直没时间对工作中遇到的知识点缺少个总结,现总结一下,对自己是个提升,如果个人的小点点小总结能对博友有帮助那也是善莫大焉. (1) ...

  3. EF6 中tracking log使用方法总结

    先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...

  4. 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释

    在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...

  5. easyui-tree绑定数据的几种方式

    没想到easyui对json数据格式要求的那么严谨,折腾了半天 第一种直接使用标签方式,很容易就加载出来了: <ul class="easyui-tree"> < ...

  6. easyui-combobox绑定json数据

    用的C#语言 后台取数据,就不用废话了,先看看序列化json数据 /// <summary> /// 对象转JSON /// </summary> /// <param ...

  7. 读取Excel二进制写入DB,并从DB中读取生成Excel文件

    namespace SendMailSMSService { class Program { static void Main(string[] args) { var connString = Sq ...

  8. EF利用重写SaveChanges()方法实现 审计日志记录

    先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...

  9. 搭建自己的框架WedeNet(二)

    WedeNet2018.Infrastructure-基础设施层:结构如下: Tools结构如下: 考虑到系统可能会有多个数据上下文(暂时以两个为例),所以根据需要定义两个T4模板用来生成对应的ent ...

随机推荐

  1. node.js入门基础

    内容: 1.node.js介绍 2.node.js内置常用模块 3.node.js数据交互 一.node.js介绍 (1)node.js特点 与其他语言相比,有以下优点: 对象.语法和JavaScri ...

  2. .NET MVC ToList() 转Json

    #region 方法一 #region ToList()转json /// <summary> /// 通过类别 Id 获相应产品 /// </summary> /// < ...

  3. filter vs servlet

    主要从如下四个方面介绍他们之间的区别:                 1.概念.                 2.生命周期.                 3.职责. 4.执行过程. 一.概念 ...

  4. python3调用C动态库

    软硬件环境 OS X EI Capitan Python 3.5.1 GCC 4.9 前言 最近在做python3开发中,碰到了一个问题,需要通过调用C的一个动态链接库来获取相应的值.扒了扒网络,动手 ...

  5. TCP/IP协议和IP

    理解 使用网络能够把多方链接在一起,然后可以进行数据传递 所谓的网络编程就是,让在不同的电脑上的软件能够进行数据传递,即进程之间的通信 tcp/ip简介 1. 什么是协议 有的说英语,有的说中文,有的 ...

  6. uva-10098

    所有的排列,但是要不重复 #include<stdio.h> #include<iostream> #include<sstream> #include<qu ...

  7. springboot ssl http转Https

    参考:https://www.cnblogs.com/imfjj/p/9058443.html   (里面有坑) https://blog.csdn.net/l4642247/article/deta ...

  8. centos配置DNS和ip

    Centos6.5 永久修改DNS地址的方法 1.配置ip地址文件 /etc/sysconfig/network-scripts/ifcfg-eth0添加一行 DNS1=8.8.8.8    #手动添 ...

  9. 1.mybatis实战教程mybatis in action之一开发环境搭建

    转自:https://www.cnblogs.com/shanheyongmu/p/5652471.html 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框 ...

  10. 3.SpringMVC介绍

    1.采用Spring MVC的好处 Dispathcher Servlet必须做如下的事情: 1.根据URI调用相应的action 2.实例化正确的控制器类 3.根据请求参数值来构造表单bean 3. ...