using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace RuPengWang.DAL
{
public class SqlHelper
{
private static readonly string constr = ConfigurationManager.AppSettings["constr"]; /// <summary>
/// 数据表的增、删、改;
/// </summary>
/// <param name="conn"></param>
/// <param name="sql"></param>
/// <param name="sp"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] sp)
{
using (SqlConnection con = new SqlConnection(SqlHelper.constr))
{ return SqlHelper.ExecuteNonQuery(con, sql, sp);
} } public static int ExecuteNonQuery(SqlConnection conn, string sql, params SqlParameter[] ps)
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
cmd.Parameters.AddRange(ps);
return cmd.ExecuteNonQuery();
}
} /// <summary>
/// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。
/// 使用参数数组提供参数
/// </summary>
/// <param name="conn"></param>
/// <param name="sql"></param>
/// <param name="ps"></param>
/// <returns>返回一个object数据</returns>
public static object ExecuteScale(SqlConnection conn,string sql, params SqlParameter[] ps)
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
cmd.Parameters.AddRange(ps);
return cmd.ExecuteScalar();
} }
/// <summary>
/// 执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。
/// 使用参数数组提供参数
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="ps">参数</param>
/// <returns>返回一个object数据</returns>
public static object ExecuteScale(string sql, params SqlParameter[] ps)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.constr))
{
return SqlHelper.ExecuteScale(conn, sql, ps);
}
}
/// <summary>
/// 该方法用于读取数据
/// </summary>
/// <param name="sql">sql语句</param>
/// <param name="sp">sql参数</param>
/// <returns>SqlDataReader类型</returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] sp)
{
SqlConnection conn = new SqlConnection(constr);
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
cmd.Parameters.AddRange(sp);
try{ conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex){ conn.Close();
conn.Dispose();
throw ex; } }
} /// <summary>
/// 读取数据返回的是datatable
/// </summary>
/// <param name="sql"></param>
/// <param name="ps"></param>
/// <returns>DataTable</returns>
public static DataTable ExecuteTable(string sql, params SqlParameter[] ps)
{
DataTable dt=new DataTable();
using (SqlDataAdapter da = new SqlDataAdapter(sql, constr))
{
if (ps != null)
{
da.SelectCommand.Parameters.AddRange(ps);
}
da.Fill(dt); }
return dt;
} }
}

  

C#中的操作数据库的SQLHelper类的更多相关文章

  1. 操作数据库的SqlHelper类

    public static class SqlHelper { public static readonly string connstr = ConfigurationManager.Connect ...

  2. android中与SQLite数据库相关的类

    为什么要在应用程序中使用数据库?数据库最主要的用途就是作为数据的存储容器,另外,由于可以很方便的将应用程序中的数据结构(比如C语言中的结构体)转化成数据库的表,这样我们就可以通过操作数据库来替代写一堆 ...

  3. python MySQLdb用法,python中cursor操作数据库(转)

    数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_N ...

  4. Global.asax中的操作数据库代码无法执行

    本人最近在做一个基于Access数据库的Web应用程序,为了实现一个定时更新数据库的需求,我在Global.asax中的Application_Start函数里写了个计时器, void Applica ...

  5. python中cursor操作数据库(转)

    原文出处:http://doudouclever.blog.163.com/blog/static/175112310201284115340663/ python 操作数据库,要安装一个Python ...

  6. 用于JDBC操作数据库的公共类

    /* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...

  7. 封装类似thinkphp连贯操作数据库的Db类(简单版)。

    <?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...

  8. Java中数组操作 java.util.Arrays 类常用方法的使用

    任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...

  9. C# ADO.NET操作数据库 SqlHelp.cs类

    刚开始练习ADONET的时候,练习的一个SQLHelp.cs  数据库操作类,很简单,但是也很实用 using System; using System.Collections.Generic; us ...

随机推荐

  1. Python自动化运维之30、Flask框架

    Flask 官网:http://flask.pocoo.org/ flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是 ...

  2. sql的执行顺序

    sql的一般执行顺序(8)SELECT (9)DISTINCT (11)<Top Num> <select list>(1)FROM [left_table](3)<jo ...

  3. oracle积累继续

    选出当天的日期的数据 select * from test_table where to_char(datetime, 'yyyy-mm-dd')=to_char(sysdate,'yyyy-mm-d ...

  4. CELL_PHOTO_IDENTIFIER

    # define CELL_PHOTO_IDENTIFIER @"photoLibraryCell" # define CLOSE_PHOTO_IMAGE @"close ...

  5. RMQ with Shifts

    uva12299:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  6. ios入门之c语言篇——基本函数——1——随机数生成

    1.随机数函数 参数返回值解析: 参数: a:int,数字范围最小值: b:int,数字范围最大值: 返回值: 1:闰年: 0:非闰年: 备注: a-b的绝对值不能超过int的最大值(65535); ...

  7. libc.so.6 误删后修复

    libc.so.6 误删后修复  libc.so.6 被删除了(libc.so.6只是个链接,真实的lib 文件是 libc-2.15.so) su, sudo,ls, cp, mv 等等一系列命令都 ...

  8. hdu-4638-Group(树状数组)

    题意 找到区间里有多少组连续数字串 分析: (转)思路:显然,我们要使得value最大,就要尽量将连续的ID分在一组,所以问题转化为求一个区间中连续ID区间的个数.我们从左往右扫描,依次考虑右端点为i ...

  9. 图论(生成树):HDU 5631Rikka with Graph

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  10. VLC打开.264文件

    昨天收到几个文件名是:xxx.264的文件,这种文件属于视频图像的raw files,即只包含视频数据.由于缺少视频头文件,所以一般播放器难以播放出来.网上很多介绍的是.H264文件如何打开,以及用一 ...