SqlHelper
发布日期:2021-06-28 17:03:50
浏览次数:3
分类:技术文章
本文共 3584 字,大约阅读时间需要 11 分钟。
using System;
using System.Data; using System.Data.SqlClient; using System.Configuration;namespace App.DAL
{ public class SqlHelper { /// <summary> /// 获取连接字符串 /// </summary> /// <returns>连接字符串</returns> public static string GetSqlConnectionString() { return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; }/// <summary>
/// 封装一个执行的sql 返回受影响的行数 /// </summary> /// <param name="sqlText">执行的sql脚本</param> /// <param name="parameters">参数集合</param> /// <returns>受影响的行数</returns> public static int ExecuteNonQuery(string sqlText, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(GetSqlConnectionString())) { using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sqlText; if (parameters != null) { foreach (SqlParameter p in parameters) { if (p != null) { // Check for derived output value with no value assigned if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null)) { p.Value = DBNull.Value; } cmd.Parameters.Add(p); } } } return cmd.ExecuteNonQuery(); } } }/// <summary>
/// 执行sql,返回查询结果中的第一行第一列的值 /// </summary> /// <param name="sqlText">执行的sql脚本</param> /// <param name="parameters">参数集合</param> /// <returns>查询结果中的第一行第一列的值</returns> public static object ExecuteScalar(string sqlText, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(GetSqlConnectionString())) { using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = sqlText; if (parameters != null) { foreach (SqlParameter p in parameters) { if (p != null) { // Check for derived output value with no value assigned if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null)) { p.Value = DBNull.Value; } cmd.Parameters.Add(p); } } } return cmd.ExecuteScalar(); } } }/// <summary>
/// 执行sql 返回一个DataTable /// </summary> /// <param name="sqlText">执行的sql脚本</param> /// <param name="parameters">参数集合</param> /// <returns>返回一个DataTable</returns> public static DataTable ExecuteDataTable(string sqlText, params SqlParameter[] parameters) { using (SqlDataAdapter adapter = new SqlDataAdapter(sqlText, GetSqlConnectionString())) { DataTable dt = new DataTable(); if (parameters != null) { foreach (SqlParameter p in parameters) { if (p != null) { // Check for derived output value with no value assigned if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null)) { p.Value = DBNull.Value; } adapter.SelectCommand.Parameters.Add(p); } } } adapter.Fill(dt); return dt; } }/// <summary>
/// 执行sql脚本 /// </summary> /// <param name="sqlText">执行的sql脚本</param> /// <param name="parameters">参数集合</param> /// <returns>返回一个SqlDataReader</returns> public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters) { //SqlDataReader要求,它读取数据的时候有,它独占它的SqlConnection对象,而且SqlConnection必须是Open状态 SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要释放连接,因为后面还需要连接打开状态 SqlCommand cmd = conn.CreateCommand(); conn.Open(); cmd.CommandText = sqlText;if (parameters != null)
{ foreach (SqlParameter p in parameters) { if (p != null) { // Check for derived output value with no value assigned if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null)) { p.Value = DBNull.Value; } cmd.Parameters.Add(p); } } } //CommandBehavior.CloseConnection当SqlDataReader释放的时候,顺便把SqlConnection对象也释放掉 return cmd.ExecuteReader(CommandBehavior.CloseConnection); } } }转载地址:https://blog.csdn.net/xiexuzhao/article/details/103141216 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月28日 19时22分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
美团酒旅起源数据治理平台的建设与实践
2019-04-29
中台的问题,是技术的问题,还是人的问题
2019-04-29
直播回顾 | 傅一平:关于大数据七个问题的思考和实践(附视频和配套PPT)
2019-04-29
美团配送数据治理实践
2019-04-29
从数仓到数据中台,谈技术选型最优解
2019-04-29
漫画:什么是微服务?
2019-04-29
经营分析师如何进一步提升自己的境界
2019-04-29
数据分析师的自我修养
2019-04-29
大数据时代,你应该知道的生活真相(上)
2019-04-29
大数据时代,你应该知道的生活真相(下)
2019-04-29
数据运营的五个层级,你到了哪一级?
2019-04-29
数据挖掘入门指南!!!
2019-04-29
干货 | 携程机票数据仓库建设之路
2019-04-29
“上中台吗?会送命的那种!”
2019-04-29
你的数据中台需要做一个成熟度评估了
2019-04-29
中台崛起的本质是“去ERP化”
2019-04-29
漫画:什么是区块链?
2019-04-29
AutoMLOps,建模的敏捷之路!
2019-04-29
如何实现数据产品经理的跃迁?
2019-04-29
深度解读数据管理葵花宝典-《DAMA-DMBOK2数据管理知识体系指南(第2版)》
2019-04-29