本文共 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); } } }转载地址:http://njbkf.baihongyu.com/