private static string connString=ConfigurationManager.ConnStrings["connString"].ToString(); //在app.config中configuration添加相应的数据库连接配置文件

1.格式化sql语句

//执行增删改查

public static int Update(string sql)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    return cmd.ExecuteNonQuery();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//单一结果查询

public static object GetSingleResult(string sql)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    return cmd.ExecuteScalar();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//只读结果集查询

public static SqlDataReader GetReader(string sql)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    return cmd.ExecuteReader(CommandBehavior.CloseConnection);

  }

  catch(Exception ex)

  {

    conn.Close();

    throw ex;

  }

}

//DataSet数据集查询

public static DataSet GetDataSet(string sql)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  DataSet ds=new DataSet();

  SqlDataAdapter da=new SqlDataAdapter();

  try

  {

    conn.Open();

    da.Fill(ds);

    return ds;

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

2.带参数的sql语句

//执行增删改查

public static int Update(string sql,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    cmd.Parameters.AddRange(param);

    return cmd.ExecuteNonQuery();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//查询单一结果

public static object GetSingleResult(string sql,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    cmd.Parameters.AddRange(param);

    retrurn cmd.ExecuteScalar();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//查询只读结果集

public static SqlDataReader GetReader(string sql,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand(sql,conn);

  try

  {

    conn.Open();

    cmd.Parameters.AddRange(param);

    return cmd.ExecuteReader(CommandBehavior.CloseConnection);

  }

  catch(Exception ex)

  {

    conn.Close();

    throw ex;

  }

}

3.带参数的存储过程

//执行增删改查

public static int UpdateByProcedure(string procedureName,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand();

  cmd.Connection=conn;

  try

  {

    conn.Open();

    cmd.CommandType=CommandType.StoredProcedure;

    cmd.CommandText=procedureName;

    cmd.Parameters.AddRange(param);

    return cmd.ExecuteNonQuery();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//查询单一结果

public static object GetSingleResultByProcedure(string procedureName,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand();

  cmd.Connection=conn;

  try

  {

    conn.Open();

    cmd.CommandType=CommandType.StoredProcedure;

    cmd.CommandText=procedureName;

    cmd.Parameters.AddRange(param);

    retrurn cmd.ExecuteScalar();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    conn.Close();

  }

}

//查询只读结果集

public static SqlDataReader GetReaderByProcedure(string procedureName,SqlParameter[] param)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand();

  cmd.Connection=conn;

  try

  {

    conn.Open();

    cmd.CommandType=CommandType.StoredProcedure;

    cmd.CommandText=procedureName;

    cmd.Parameters.AddRange(param);

    return cmd.ExecuteReader(CommandBehavior.CloseConnection);

  }

  catch(Exception ex)

  {

    conn.Close();

    throw ex;

  }

}

4.使用事务更新

public static bool UpdateByTracsaction(List<string> sqlList)

{

  SqlConnection conn=new SqlConnection(connString);

  SqlCommand cmd=new SqlCommand();

  cmd.Connection=conn;

  try

  {

    conn.Open();

    cmd.Transaction=conn.BeginTransaction();//开启事务

    foreach(string sql in sqlList)

    {

      cmd.CommandText=sql;

      cmd.ExecuteNonQuery();

    }

    cmd.Transaction.Commit();//提交事务

    return true;

  }

  catch(Exception ex)

  {

    if(cmd.Transaction!=null)

    {

      cmd.Transaction.Rollback();//回滚事务

    }

    throw ex;

  }

  finally

  {

    if(cmd.Transaction!=null)

    {

      cmd.Transaction=null;//清空事务

    }

    conn.Close();

  }

}

SQLServer数据库通用访问类的更多相关文章

  1. C#:数据库通用访问类 SqlHelper

    using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...

  2. 针对SQLServer数据库的通用访问类

    Web.config中代码 <configuration> <connectionStrings> <add name="connString" co ...

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

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

  4. C# SQL数据库的访问类

    /// <summary> /// SQL数据库的访问类 /// </summary> public class SQLHelper { /// <summary> ...

  5. SQLserver数据库操作帮助类SqlHelper

    1 SqlHelper源码 using System; using System.Data; using System.Xml; using System.Data.SqlClient; using ...

  6. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServer数据库的访问

    上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 二 图片验证码的识别” ...

  7. Ado.net 通用访问类

    public class DbHelperSQL { private static string connString = ConfigurationManager.ConnectionStrings ...

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

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

  9. 一个通用数据库访问类(C#,SqlClient)

    本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connecti ...

随机推荐

  1. android离线安装adt

    打开Eclipse, 在菜单栏上选择help->Install New SoftWare 出现如下界面: 点击 Add按钮,出现如下界面 在Name这而随意输入一个名字:ADT15:点击打开Ar ...

  2. CMS漏洞

    例1, discuz!后台弱口令/暴力破解 1.http://club.lenovo.com.cn/admin.php

  3. Activity的启动模式及回退栈的概念

    Activity的启动模式 standard 正常模式 在创建一个新的activity的时候,直接在栈顶创建一个新的activity singleTop 顶部单个 在创建一个新的activity的时候 ...

  4. 简书APP

    找第三方的时候看到简书这个APP,上网搜了一下发现网页版非常的干净,开头的一篇文章就是"你没实力就别心存侥幸",看完也挺有有同感的.文章网址:http://www.jianshu. ...

  5. C语言结构体赋值2

    #include <stdio.h> /** 上一个版本的name是固定大小的,不好,这次换用 *name然后 采用 堆的方式申请内存,起到用到少拿多少的一个方式. */ struct s ...

  6. android.os.NetworkOnMainThreadException 异常处理

    当我试图在UI线程(MainActivity)连接网络的时候,运行时抛出异常droid.os.NetworkOnMainThreadException 安卓的官方文档说 The exception t ...

  7. Python基础:1.数据类型(元组)

    提示:python版本为2.7,windows系统 1.元组(Tuple) Tuple,与List类似,但是Tuple一旦初始化之后就不能修改了,没有增加.删除.修改元素. >>> ...

  8. 关于XML的DTD概述

    1 DTD概述 1.1 什么是DTD DTD(Document Type Definition),文档类型定义,用来约束XML文档.或者可以把DTD理解为创建XML文档的结构!例如可以用DTD要求XM ...

  9. 2013 ACM/ICPC 长沙现场赛 C题 - Collision (ZOJ 3728)

    Collision Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge There's a round medal ...

  10. Leetcode 104. Maximum Depth of Binary Tree(二叉树的最大深度)

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...