using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.OleDb;
using System.Data;
using System.Configuration;
using System.Data.Sql;
using System.Data.SqlClient;
namespace DAL
{
public class SqlHelper
{
public static string connstring = ConfigurationManager.ConnectionStrings["zzconstr"].ConnectionString;
//public static string connstring = "Data Source=ZZ-PC;Initial Catalog=IPTVDB;User ID=sa;Password=sa";
/// <summary>
/// 执行非查询,返回受影响行数,异常返回-1;
/// </summary>
/// <param name="sql"></param>
/// <param name="type"></param>
/// <param name="pars"></param>
/// <returns></returns>
public static bool ExceNonQuery(string sql, CommandType type, IDataParameter[] pars)
{ SqlConnection con = new SqlConnection(connstring);
SqlCommand com = new SqlCommand(sql, con); if (pars != null && pars.Length > )
{
foreach (SqlParameter pp in pars)//把参数集全部加进去
com.Parameters.Add(pp);
}
try
{
con.Open();
int t = com.ExecuteNonQuery();
if (t > )
{
return true;
}
else
return false;
}
catch (Exception e) { return false; }
finally
{
com.Parameters.Clear();
com.Dispose();
con.Close();
}
}
/// <summary>
/// 执行sql语句的查询,返回查询的数量。异常返回-1.
/// </summary>
/// <param name="sql"></param>
/// <param name="type"></param>
/// <param name="pars"></param>
/// <returns></returns>
public static int ExceQuery(string sql, CommandType type, IDataParameter[] pars)
{
SqlConnection con = new SqlConnection(connstring);
SqlCommand com = new SqlCommand(sql, con);
com.CommandType = type;
if (pars != null && pars.Length > )
{
foreach (SqlParameter pp in pars)//把参数集全部加进去
com.Parameters.Add(pp);
}
try
{
con.Open();
if (com.ExecuteScalar() != null)//查询结果为空时返回0
{
int t = (int)com.ExecuteScalar(); return t;
}
else
return -;
}
catch (Exception e) { return -; }
finally
{
com.Parameters.Clear();
com.Dispose();
con.Close();
}
}
/// <summary>
/// 执行查询,返回一个数据集
/// </summary>
/// <param name="sql"></param>
/// <param name="pars"></param>
/// <returns></returns>
public static DataSet ExcueReturnDataset(string sql, IDataParameter[] pars)
{
SqlConnection con = new SqlConnection(connstring);
DataSet set = new DataSet();
SqlCommand com = new SqlCommand(sql, con);
if (pars != null && pars.Length > )
{
foreach (SqlParameter pp in pars)//把参数集全部加进去
com.Parameters.Add(pp);
} SqlDataAdapter adpter = new SqlDataAdapter(com); try
{
set.Clear();
adpter.Fill(set);
return set;
}
catch (Exception ex) { return null; }
finally {
com.Parameters.Clear();
com.Dispose();
con.Close();
} }
public static DataSet ExcueReturnDataset(string sql,CommandType type,IDataParameter[] pars)
{
SqlConnection con = new SqlConnection(connstring);
DataSet set = new DataSet();
SqlCommand com = new SqlCommand(sql, con);
com.CommandType = type;
if (pars != null && pars.Length > )
{
foreach (SqlParameter pp in pars)//把参数集全部加进去
com.Parameters.Add(pp);
} SqlDataAdapter adpter = new SqlDataAdapter(com); try
{
set.Clear();
adpter.Fill(set);
return set;
}
catch (Exception ex) { return null; }
finally
{
com.Parameters.Clear();
com.Dispose();
con.Close();
} }
public static IDataReader ExcueReturnDataReader(string sql, IDataParameter[] pars)
{
SqlConnection con = new SqlConnection(connstring);
SqlCommand com = new SqlCommand(sql, con); SqlDataReader reader;
if (pars != null && pars.Length > )
{
foreach (SqlParameter pp in pars)//把参数集全部加进去
com.Parameters.Add(pp);
}
try
{
con.Open();
reader = com.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
catch (Exception ex)
{ return null;
}
finally {
com.Parameters.Clear();
com.Dispose();
//con.Close();
} }
/// <summary>
/// 执行存储过程,返回影响的行数
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="rowsAffected">影响的行数</param>
/// <returns></returns>
public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
{
using (SqlConnection connection = new SqlConnection(connstring))
{
int result;
connection.Open();
SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
if (parameters!= null && parameters.Length > )
{
foreach (SqlParameter pp in parameters)//把参数集全部加进去
command.Parameters.Add(pp);
}
command.Parameters.Add("@return","").Direction = ParameterDirection.ReturnValue;
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters["@return"].Value;
connection.Close();
return result;
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="tableName">DataSet结果中的表名</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
{
using (SqlConnection connection = new SqlConnection(connstring))
{
DataSet dataSet = new DataSet();
SqlCommand com = new SqlCommand(storedProcName, connection);
com.CommandType =CommandType.StoredProcedure;
if (parameters != null && parameters.Length > )
{
foreach (SqlParameter pp in parameters)//把参数集全部加进去
com.Parameters.Add(pp);
} SqlDataAdapter adpter = new SqlDataAdapter(com);
adpter.Fill(dataSet, tableName);
return dataSet;
}
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connstring))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
}
}

http://www.open-open.com/lib/view/open1391348424801.html

C#数据库帮助类SqlHelper的更多相关文章

  1. 数据库操作类《SqlHelper》

    一.背景 在看了一本书叫<Visual Studio 2010(C#)Windows数据库项目开发>后,觉得很多编程技术需要积累,因为一个简单的项目里包含的技术太多了,容易忘记.每次需要用 ...

  2. 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类

    在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...

  3. 微软官方SqlHelper类 数据库辅助操作类

    数据库操作类真的没有必要自己去写,因为成熟的类库真的非常完善了,拿来直接用就好,省时省力. 本文就为大家介绍微软官方的程序PetShop4.0中的SqlHelper类,先来做一下简单的介绍,PetSh ...

  4. 我也来写:数据库访问类DBHelper

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  5. 我也来写:数据库访问类DBHelper(转)

    一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

  6. ADO.NET复习总结(5)--工具类SqlHelper 实现登录

    工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...

  7. C#全能数据库操作类及调用示例

    C#全能数据库操作类及调用示例 using System; using System.Data; using System.Data.Common; using System.Configuratio ...

  8. 【知识必备】ezSQL,最好用的数据库操作类,让php操作sql更简单~

    最近用php做了点小东东,用上了ezSQL,感觉真的很ez,所以拿来跟大家分享一下~ ezSQL是一个非常好用的PHP数据库操作类.著名的开源博客WordPress的数据库操作就使用了ezSQL的My ...

  9. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

随机推荐

  1. Succession

    Description The king in Utopia has died without an heir. Now several nobles in the country claim the ...

  2. Hadoop内部的限流机制

    前言 文章标题一開始提及到了一个令人感到有些抽象又显得有些非常"大"的词,限流.事实上这个词语在非常多行业都能够用到,比方近期春运,各大主要城市,火车站,地铁站都要做到限流吧,避免 ...

  3. 用Python读取大文件

    通常我们在读取文件的时候,会用到read(), readline(), readlines(). 通常可能会有这样的用法: def test1(): with open("/tmp/test ...

  4. vue 通信方式汇总

    1.10种通信方式 10种:https://juejin.im/post/5bd18c72e51d455e3f6e4334 2.除此之外,还有children和ref. 需要注意 $children  ...

  5. HDU 4847 陕西邀请赛A(水)

    HDU 4847 Wow! Such Doge! pid=4847" style="">题目链接 题意:给定文本,求有几个doge,不区分大写和小写 思路:水题.直 ...

  6. zookeeper工作原理解析

    zookeeper一般用于distributed locking,并不适合用于distributed storage,由于zookeeper的每一个node.也叫做znode的存储容量限制是1M. z ...

  7. ITOO之底层关系

    一.pom.xml文件关系图: 以基础系统中学生这条线为例: 图一:pom.xml文件关系图 图说明: 该项目是Maven项目,使用pom.xml文件对项目进行管理 管理类:(非阴影部分) Itoo- ...

  8. XML 文档结构必须从头至尾包含在同一个实体内

      XML 文档结构必须从头至尾包含在同一个实体内 CreateTime--2018年4月2日16:40:58 Author:Marydon 问题还原: <![CDATA[ <?xml v ...

  9. SettingsMyEclipse

      迁移时间--2017年5月20日10:39:42 Author:Marydon-----------------------------------MyEclipse单独设置项---------- ...

  10. Python之L.reverse()和L.sort()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #Python之L.reverse()和L.sort() #http://python.jobbole.com ...