SqlDataHelper
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Data.SqlClient;
/// <summary>
///SqlHelper 的摘要说明
/// </summary>
public class SqlDataHelper
{
public SqlDataHelper()
{
}
//数据库连接字符串
private readonly static string connectionString = ConfigurationManager.ConnectionStrings["default"].ToString();
/// <summary>
/// 执行增,删,改的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>受影响的行数</returns>
public static int ExecuteNonQuery(CommandType commandType, string cmdText, SqlParameter[] para)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
int no = Convert.ToInt32(cmd.ExecuteNonQuery());
cmd.Parameters.Clear();
return no;
}
}
/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>读取器SqlDataReader</returns>
public static SqlDataReader ExecuteReader(CommandType commandType, string cmdText, SqlParameter[] para)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlDataReader dr = null;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return dr;
}
/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>数据集</returns>
public static DataSet GetDataSet(CommandType commandType, string cmdText, SqlParameter[] para)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = conn;
da.SelectCommand.CommandText = cmdText;
da.SelectCommand.CommandType = commandType;
if (para != null)
{
da.SelectCommand.Parameters.AddRange(para);
}
DataSet ds = new DataSet();
conn.Open();
da.Fill(ds);
da.SelectCommand.Parameters.Clear();
return ds;
}
}
/// <summary>
/// 执行查询的方法,支持存储过程
/// <summary>
/// 执行查询的方法,支持存储过程
/// </summary>
/// <param name="connectionString">连接字符串,自满足,请用SqlHelper.connString赋值</param>
/// <param name="commandType">命令类型,如果是sql语句,则为CommandType.Text,否则为CommandType.StoredProcdure</param>
/// <param name="cmdText">SQL语句或者存储过程名称</param>
/// <param name="para">SQL参数,如果没有参数,则为null</param>
/// <returns>返回查询结果的第一行第一列</returns>
public static object GetScalar(CommandType commandType, string cmdText, SqlParameter[] para)
{
object result = null;
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = commandType;
cmd.CommandText = cmdText;
if (para != null)
{
cmd.Parameters.AddRange(para);
}
conn.Open();
result = cmd.ExecuteScalar();
cmd.Parameters.Clear();
}
return result;
}
}
SqlDataHelper的更多相关文章
- Android LitePal 神一般的数据库框架 超级好用
参考: Android数据库高手秘籍(一)--SQLite命令 Android数据库高手秘籍(二)--创建表和LitePal的基本用法 Android数据库高手秘籍(三)--使用LitePal升级表 ...
- 项目中的web api知识总结
最近在做公司的项目,自己负责webapi的框架的搭建与开发,最近很忙,一直没时间对工作中遇到的知识点缺少个总结,现总结一下,对自己是个提升,如果个人的小点点小总结能对博友有帮助那也是善莫大焉. (1) ...
- EF6 中tracking log使用方法总结
先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
在自学杨中科老师的视频教学时,拓展编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时 会产生Additional information: 阅读器关闭时尝试调用 ...
- easyui-tree绑定数据的几种方式
没想到easyui对json数据格式要求的那么严谨,折腾了半天 第一种直接使用标签方式,很容易就加载出来了: <ul class="easyui-tree"> < ...
- easyui-combobox绑定json数据
用的C#语言 后台取数据,就不用废话了,先看看序列化json数据 /// <summary> /// 对象转JSON /// </summary> /// <param ...
- 读取Excel二进制写入DB,并从DB中读取生成Excel文件
namespace SendMailSMSService { class Program { static void Main(string[] args) { var connString = Sq ...
- EF利用重写SaveChanges()方法实现 审计日志记录
先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...
- 搭建自己的框架WedeNet(二)
WedeNet2018.Infrastructure-基础设施层:结构如下: Tools结构如下: 考虑到系统可能会有多个数据上下文(暂时以两个为例),所以根据需要定义两个T4模板用来生成对应的ent ...
随机推荐
- more 可翻页查看(一页一页翻动)
命令解释 我们查看数据的时候,使用前面提到的nl与cat.tac等等,都是将文件内容一次性输出到屏幕上,看起来不是很方便,那我们就可以使用这个命令,一页一页查看,前面的数据不至于看不到. 命令说明 [ ...
- 解决Mac nginx问题 [emerg] 54933#0: bind() to 0.0.0.0:80 failed (13: Permission denied)
brew services restart nginx Stopping nginx... (might take a while) ==> Successfully stopped nginx ...
- 阿里数据服务P6~P7晋升要点
这是我在2015年高德负责P6晋升评审为团队成员准备的要点,整理下. 1. 数据仓库难点 1.1 分布式OLAP设计与选型 传统BI 友盟,Talking Data 启明星 keylin phonie ...
- 黏包的原理 (tcp udp) struct模块
黏包 指数据混乱问题(发送端发送数据,接收端不知如何去接收) 只有tcp协议才会发送粘包,udp不会发生 黏包(tcp) 有一个合包机制(nagle算法),将多次连续发送且间隔较小的数据,进行打包成一 ...
- selenium+python自动化95-弹出框死活定位不到
前言 部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用. 有些弹出框是div层,这种跟平常 ...
- cplex-Java-样例代码解析
import ilog.cplex.IloCplex; import ilog.concert.*; /** * * * * 最大化 x1 + 2x2 + 3x3</br> * 约束 &l ...
- CUDA C Programming Guide 在线教程学习笔记 Part 11
▶ 数学函数 ● 舍入函数,考虑被舍入参数有双精度浮点和单精度浮点,舍入方式有区别,舍入结果有整形.长整形和长长整形,所以共有以下舍入函数. // math_functions.h extern __ ...
- HTML5 Canvas ( 矩形的绘制 ) rect, strokeRect, fillRect
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- node 把前台传来的base64码转成图片存放
最近做个人网站头像修改用到了,在做头像修改,先做了一个图片切割,只需要上传你选中部分, 如图 这种需求 应该还是会遇到的, http://pan.baidu.com/s/1boVkn1t 这是裁剪图片 ...
- J2SE 8的Lambda --- 语法
语法例子 LambdaGrammarTest lambdaTest = new LambdaGrammarTest(); // 1. 能够推导出类型的,可以不写类型 String[] planets ...