自己写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. 敏捷开发的特点(转自MBAlib)

    敏捷开发的特点 敏捷方法主要有两个特点,这也是其区别于其他方法,尤其是重型方法的最主要特征: (1)敏捷开发方法是“适应性”(Adaptive)而非“预设性” (Predictive). 这里说的预设 ...

  2. poj 3250 Bad Hair Day (单调栈)

    http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissi ...

  3. 在Unity中高效工作(下)

    原地址:http://www.unity蛮牛.com/thread-20005-1-1.html Tips for Creating Better Games and Working More Eff ...

  4. URAL 1119. Metro(BFS)

    点我看题目 题意  : 这个人在左下角,地铁在右上角,由很多格子组成的地图,每一条边都是一条路,每一条边都是100米.还有的可以走对角线,问你从起点到终点最短是多少. 思路 : 其实我想说一下,,,, ...

  5. Java泛型反射机制(二)

    /** * @author Administrator * 好处:泛型:1安全 2减少代码重用率 */ package com.test; import java.lang.reflect.Metho ...

  6. Altium快捷键

    M快捷键 PCB快捷键 编辑 视图

  7. 《深入理解linux内核》第三章 进程

    进程的七种状态 在内核源码的 include/linux/sched.h文件中: task_struct的status可表示 #define TASK_RUNNING 0 #define TASK_I ...

  8. 【PythonChallenge】Level 5

    题目主要找发声类似于Peak Hell的Python模块,查了一下手册pickle已经是最像的了.看了一下源代码,发现panner.p.如同发现了新大陆,拷贝内容.使用pickle解答.答案为chan ...

  9. 【HDOJ】1071 The area

    数学题,先求抛物线和直线的系数,再利用积分公式求面积. #include <stdio.h> #include <math.h> int main() { double x1, ...

  10. IPv6 tutorial 3 New features: IPsec and LAN features

    https://4sysops.com/archives/ipv6-tutorial-part-3-new-features-ipsec-and-lan-features/ In the last p ...