自己写sqlhelper类

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace birthday
{
/// <summary>
/// SqlHelper
/// </summary>
[Serializable]
public class SqlHelper
{
//数据库连接字符串
private static string strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString; #region ExecuteNonQuery /// <summary>
/// 执行T-sql语句 并返回受影响行数
/// </summary>
/// <param name="sql">T-sql语句</param>
/// <returns>没有受影响行数返回-1</returns>
public static int ExecuteNonQuery(string sql)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
return cmd.ExecuteNonQuery();
}
}
} /// <summary>
/// 执行T-sql语句 并返回受影响行数
/// </summary>
/// <param name="sql">T-sql语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>没有受影响行数返回-1</returns>
public static int ExecuteNonQuery(string sql, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
return cmd.ExecuteNonQuery();
}
}
} #endregion #region ExecuteScalar /// <summary>
/// 执行T-sql语句 并返回结果的第一行第一列(忽略其他列)
/// </summary>
/// <param name="sql">T-sql语句</param>
/// <returns>没有列则返回null</returns>
public static object ExecuteScalar(string sql)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
return cmd.ExecuteScalar();
}
}
} /// <summary>
/// 执行T-sql语句 并返回结果的第一行第一列(忽略其他列)
/// </summary>
/// <param name="sql">T-sql语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>没有列则返回null</returns>
public static object ExecuteScalar(string sql, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
return cmd.ExecuteScalar();
}
}
} #endregion #region ExecuteReader /// <summary>
/// 以只进流方式读取数据,查询到的数据存储在服务器中
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <returns>数据流</returns>
public static SqlDataReader ExecuteReader(string sql)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
return cmd.ExecuteReader();
}
}
} /// 以只进流方式读取数据,查询到的数据存储在服务器中
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="cbh">查询结果、查询数据的说明</param>
/// <returns>数据流</returns>
public static SqlDataReader ExecuteReader(string sql, CommandBehavior CommandBehavior)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
return cmd.ExecuteReader(CommandBehavior);
}
}
} /// <summary>
/// 以只进流方式读取数据,查询到的数据存储在服务器中
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>数据流</returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
return cmd.ExecuteReader();
}
}
} /// <summary>
/// 以只进流方式读取数据,查询到的数据存储在服务器中
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>数据流</returns>
public static SqlDataReader ExecuteReader(string sql, CommandBehavior CommandBehavior, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
return cmd.ExecuteReader(CommandBehavior);
}
}
} #endregion #region ExeccutDataSet /// <summary>
/// 返回以xml描述的不依赖于数据库的独立数据集合,数据存放于客户端,相当于内存中的数据库
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <returns>数据集合</returns>
public static DataSet ExeccutDataSet(string sql)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
SqlDataAdapter _sda = new SqlDataAdapter(cmd);
DataSet _ds = new DataSet();
_sda.Fill(_ds);
return _ds;
}
}
} /// <summary>
/// 返回以xml描述的不依赖于数据库的独立数据集合,数据存放于客户端,相当于内存中的数据库
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>数据集合</returns>
public static DataSet ExeccutDataSet(string sql, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
SqlDataAdapter _sda = new SqlDataAdapter(cmd);
DataSet _ds = new DataSet();
_sda.Fill(_ds);
return _ds;
}
}
} #endregion #region ExeccutDataTable /// <summary>
/// 返回临时保存数据的网格虚拟表(表示内存中数据的一个表)
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <returns>数据虚拟表</returns>
public static DataTable ExeccutDataTable(string sql)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
SqlDataAdapter _sda = new SqlDataAdapter(cmd);
DataTable _data = new DataTable();
_sda.Fill(_data);
return _data;
}
}
} /// <summary>
/// 返回临时保存数据的网格虚拟表(表示内存中数据的一个表)
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>数据虚拟表</returns>
public static DataTable ExeccutDataTable(string sql, params SqlParameter[] SqlParameter)
{
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddRange(SqlParameter);
SqlDataAdapter _sda = new SqlDataAdapter(cmd);
DataTable _data = new DataTable();
_sda.Fill(_data);
return _data;
}
}
} #endregion #region ExecuteDataRow /// <summary>
/// 返回数据行(返回第一行,忽略其他行)
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <returns>返回数据行</returns>
public static DataRow ExecuteDataRow(string sql)
{ return SqlHelper.ExeccutDataTable(sql).Rows[0];
} /// <summary>
/// 返回数据行(返回第一行,忽略其他行)
/// </summary>
/// <param name="sql">T-sql 语句</param>
/// <param name="SqlParameter">参数</param>
/// <returns>返回数据行</returns>
public static DataRow ExecuteDataRow(string sql, params SqlParameter[] SqlParameter)
{
return SqlHelper.ExeccutDataTable(sql, SqlParameter).Rows[0];
} #endregion #region GetRecordCount /// <summary>
/// 得到数据总条数
/// </summary>
/// <param name="table">表名称</param>
/// <returns>数据总条数</returns>
public static int GetRecordCount(string table)
{
int RecordCount = 0;
string sql = "select count(*) from " + table;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out RecordCount))
{
return RecordCount;
}
else
{
return 0;
}
} /// <summary>
/// 得到数据总条数
/// </summary>
/// <param name="table">表名称</param>
/// <param name="where">过滤条件</param>
/// <returns>得到数据总条数</returns>
public static int GetRecordCount(string table, string where)
{
int RecordCount = 0;
string sql = "select count(*) from " + table + " where 1=1 and " + where;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out RecordCount))
{
return RecordCount;
}
else
{
return 0;
}
} #endregion #region GetRecordMax /// <summary>
/// 得到指定表指定列最大值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <returns>最大值</returns>
public static int GetRecordMax(string table, string field)
{
int _max = 0;
string sql = "select max(" + field + ") from " + table;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _max))
{
return _max;
}
else
{
return 0;
}
} /// <summary>
/// 得到指定表指定列最大值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <param name="where">过滤条件</param>
/// <returns>最大值</returns>
public static int GetRecordMax(string table, string field, string where)
{
int _max = 0;
string sql = "select max(" + field + ") from " + table + " where 1=1 and " + where;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _max))
{
return _max;
}
else
{
return 0;
}
} #endregion #region GetRecordMin /// <summary>
/// 得到指定表指定列最小值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <returns>最小值</returns>
public static int GetRecordMin(string table, string field)
{
int _min = 0;
string sql = "select min(" + field + ") from " + table;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _min))
{
return _min;
}
else
{
return 0;
}
} /// <summary>
/// 得到指定表指定列最小值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <param name="where">过滤条件</param>
/// <returns>最小值</returns>
public static int GetRecordMin(string table, string field, string where)
{
int _min = 0;
string sql = "select min(" + field + ") from " + table + " where 1=1 and " + where;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _min))
{
return _min;
}
else
{
return 0;
}
} #endregion #region GetRecordAvg /// <summary>
/// 得到指定表指定列平均值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <returns>平均值</returns>
public static int GetRecordAvg(string table, string field)
{
int _avg = 0;
string sql = "select avg(" + field + ") from " + table;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _avg))
{
return _avg;
}
else
{
return 0;
}
} /// <summary>
/// 得到指定表指定列平均值
/// </summary>
/// <param name="table">表名称</param>
/// <param name="field">列名称</param>
/// <param name="where">过滤条件</param>
/// <returns>平均值</returns>
public static int GetRecordAvg(string table, string field, string where)
{
int _avg = 0;
string sql = "select avg(" + field + ") from " + table + " where 1=1 and " + where;
if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _avg))
{
return _avg;
}
else
{
return 0;
}
} #endregion
}
}

[置顶] 自己写sqlhelper类的更多相关文章

  1. [置顶] 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)

    自己写代码生成器之生成Dal层代码(获取数据库所有表名称) --得到数据库birthday所有表名称 select name from sysobjects where [type]='U' --se ...

  2. [置顶] 自己写一个简单通用的Makefile

    转自:http://blog.csdn.net/u011913612/article/details/52102241 一.makefile的作用 Makefile是用于自动编译和链接的,一个工程有很 ...

  3. [置顶]VC2013的一个bug

    [置顶]VC2013的一个bug 前段时间在尝试使用一个C++的GUI库nana.这个库最大的特点在于使用现代C++风格去编写GUI程序,而不需要使用大量的比较丑陋的代码(如MFC中的各种宏),或者其 ...

  4. 窗口置顶 - 仿TopWind

    前置学习:低级鼠标hook,获得鼠标状态. 这个在原来获得鼠标状态的基础上,加上一个事件处理即可. TopWind就是一个可以置顶窗口的文件,避免复制粘贴的时候的来回切换(大窗口与小窗口),算是一个实 ...

  5. About me & 一些置顶的博文

    About me 一只历史上最弱的 \(\text{hnoier}\) ... 身在 \(\text{hn}\) 弱校,除了在四大名校夹缝中生存,还要受到同校 \(\text{Julao}\) 的鄙视 ...

  6. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  7. UITableView设置Cell左滑多个按钮(编辑,删除,置顶等)

    一.iOS7不支持cell多个按钮这个时候可以使用一个三方库JZTableViewRowAction,引用类扩展文件并实现其代理方法 JZTableViewRowAction下载地址:http://d ...

  8. 仿照 QQ 的 cell 的左滑删除、置顶、标记未读效果

    侧滑删除.置顶.取消关注,在iOS8之前需要我们自定义,iOS8时苹果公司推出了新的API,UITableViewRowAction类,我们可以使用该类方便的制作出如下图的效果. 下面是实现的主要代码 ...

  9. C#或者WPF中让某个窗体置顶

    原文:C#或者WPF中让某个窗体置顶 前记:在工作中有个需求,要求不管到那个界面,我必须让一个浮动条(其实是个窗体)置顶. 我用wpf,因为有之前有好几个界面已经设置成topmost了,所以在这几个界 ...

随机推荐

  1. linux(centos)如何查看文件夹大小

    参考http://zhidao.baidu.com/link?url=OrfDgdHvyA1pSDAy6ql-IgPBWtvcS5AR9bc543zTr1hLIDfCd42nYtNBplAl2pHvM ...

  2. 对于数组使用sizeof(a)和使用sizeof(a[0])

    #include "stdafx.h" #include <iostream> using namespace std; int main() { ]={}; cout ...

  3. CentOS搭建OpenVPN服务(简易版)

    OpenVPN服务端配置 1. 安装OpenVPN软件包 默认的Centos软件源里面没有OpenVPN的软件包,我们可以添加rpmforge的repo,从而实现yum安装openvpn 针对Cent ...

  4. [转载]初学C#之list

    C# List<T>用法 所属命名空间:System.Collections.Generic public class List<T> : IList<T>, IC ...

  5. 如何使用 Xcode Targets 管理开发和生产版本?

    在开始此教程之前,我们假设你已经完成了应用程序的开发和测试,现在准备提交生产发布.问题是,某些 Web 服务 URLs 指向测试服务器,而 API keys 则为测试环境而配置.在提交应用程序给苹果审 ...

  6. UVA 10273 Eat or Not to Eat?

    这个题目一直以为是要用图论知识来做,可是一点建图的思绪都没有,后来知道暴力便可破之.由于牛的产奶周期最大为10,1.2.3.....10的最小公倍数是MT = 2520,所以把MT作为最大的周期,然后 ...

  7. Java集合类之Hashtable

    package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...

  8. VC2008下CRichEditView加载RichEdit4.1版本(还有一些类似的文章)

         在之前的文章<RichEdit 各个版本介绍>中,写到RichEdit已经到达6.0版本了,而我们经常编程使用的却还是2.0,在vc6.0中甚至还使用1.0版本,更高的版本修复了 ...

  9. java中path和classpath

    Path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方; CLASSPATH的作用是指定查找类的路径:当使用java命令执行一个类(类中的main方法)时,会从class ...

  10. HANA内存数据库与oracle数据库的性能比较

    链接: http://wenku.it168.com/redian/hana/ 1.传统磁盘数据库的基本访问模式.为了提高性能在产品和应用之间会加入缓存的内存区域.传统数据库性能瓶颈主要出现在一个是内 ...