ADO.net封装SQL Helper

news/2024/7/8 2:54:54 标签: c#, sql

//1.设置sqlHelper为静态类

  public static class SqlHelper

//2.设置连接字符串的app.config配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name ="mssqlserver" connectionString="Data source=.;initial catalog=sqldemos;user id=sa;password=123456;"/>
  </connectionStrings>
</configuration>

//3.添加引用 System.Configuration
添加引用 System.Configuration

//sqlHelper.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace _07城市列表和递归Treeview
{
    public static class SqlHelper
    {

        //1.设置sqlHelper为静态类
        //2.设置连接字符串的app.config配置文件
        //3.添加引用 System.Configuration 
        //3.5using System.Configuration;
        //4.配置constr语句(private static readonly 私有字段静态只读类型)
        private static readonly string conStr = ConfigurationManager.ConnectionStrings["mssqlserver"].ConnectionString;

        //5.封装 ExecuteNonQuery 用于增insert删delete改update
        public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection conn = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql,conn))
                {
                    if (pms != null)//如果有参数,加载参数
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }
            }          
        }
        //6.封装ExecuteScalar方法用于返回单个值
        public static object ExecuteScalar(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection conn= new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql,conn))
                {
                    if (pms != null)//如果有参数,加载参数
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    conn.Open();
                    return cmd.ExecuteScalar();
                }
            }           
        }
        //7.封装ExecuteReader 方法用于返回多个值
        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
        {
        //reader方法不要将connect-using 否则在跳出静态类时,会close和dispose conn对象,造成外界无法调用reader对象
            SqlConnection conn = new SqlConnection(conStr);
            
                using (SqlCommand cmd = new SqlCommand(sql,conn))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    try//捕获sql发生错误,防止链接无法正常关闭
                    {
                        conn.Open();
                        //System.Data.CommandBehavior.CloseConnection这个枚举参数,表示将来使用完毕SqlDataReader之后,关闭Reader的同时,将Reader关联的Connection链接,也同时关闭,释放资源。
                        return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                    }
                    catch
                    {
                        conn.Close();
                        conn.Dispose();
                        throw;//将异常传递出try-catch
                    }
                }
           
        }
 public static DataTable SqlDataAdapter(string sql, params SqlParameter[] pms)
        {
            DataTable dt = new DataTable();
            
            using (SqlDataAdapter da= new SqlDataAdapter(sql,conStr))
            {
                if (pms != null)
                {
                    da.SelectCommand.Parameters.AddRange(pms);//SqlDataAdapter里面只有一个SelectCommand可以直接用
                }
                da.Fill(dt);
            }
            return dt;
        }
    }//sqlhelper
}

http://www.niftyadmin.cn/n/1318074.html

相关文章

apache-tomcat配置问题

在下载完apache-tomcat后,会遇到环境变量的配置这样那样的问题.而导致tomcat服务器无法正常的启动,下面我总结了一简单的方法保证一看就懂。 1、将Apache-tomcat包解压到你想要的位置&#xff0c;以C盘为例,解压到C:\Tomcat中 2、然后配置环境变量,右击计算机点击属性打开系统属…

java jvm常用命令工具——jps命令(Java Virtual Machine Process Status Tool)

1.介绍 用来查看基于HotSpot的JVM里面中&#xff0c;所有具有访问权限的Java进程的具体状态, 包括进程ID&#xff0c;进程启动的路径及启动参数等等&#xff0c;与unix上的ps类似&#xff0c;只不过jps是用来显示java进程&#xff0c;可以把jps理解为ps的一个子集。 使用jps时&…

kali2.0更新源启用中文输入法

kali2.0更新源启用中文输入法 查看版本信(Version)&#xff1a; uname -r 工具&#xff08;Tools&#xff09;: fcitxfcitx fcitx-table-wbpy 更新源&#xff1a;&#xff08;Source.list&#xff09; 使用163的源&#xff0c;快速、稳定 deb http://mirrors.163.com/debi…

光伏电池,最大功率跟踪,MPPT, 扰动观察法,电导增量法,占空比扰动

光伏电池&#xff0c;最大功率跟踪&#xff0c;MPPT&#xff0c; 扰动观察法&#xff0c;电导增量法&#xff0c;占空比扰动&#xff0c; 光伏输出特性曲线&#xff0c;matlab/simulink&#xff0c;附赠参考说明id649971172506&

java jvm常用命令工具——jstack命令(Java Stack Trace)

1.介绍 Stack Trace for Java&#xff0c;用于生成虚拟机当前的线程快照信息&#xff0c;包含每一条线程的堆栈信息。该命令通常用于定位线程停顿原因&#xff0c;当出现线程停顿时&#xff0c;可通过stack查看每个线程的堆栈信息&#xff0c;进而分析停顿原因。 jstack用于打印…

kali4.0 下安装QQ 2012

kali4.0 下安装QQ 2012 &#xff08;1&#xff09;资源下载 a:QQ下载地址&#xff1a; 链接: http://pan.baidu.com/s/1blF6AM 密码: 56fk b:视频下载地址 链接: http://pan.baidu.com/s/1eQUC27w 密码: f5b8 &#xff08;2&#xff09;安装方法&#xff1a; a:WineQQ20…

双向BUCK BOOST DCDC变换器仿真模型 BUCK BOOST 拓扑结构,电压电流双闭环控制策略

双向BUCK BOOST DCDC变换器仿真模型 BUCK BOOST 拓扑结构&#xff0c;电压电流双闭环控制策略&#xff0c; 控制电流双向流动&#xff0c;可用于蓄电池和超级电容充放电使用 维持直流母线电压恒定&#xff0c;仿真效果很好&#xff0c;可用于学习。id655485468160&

C#手动创建 dataset 和datatable

//手动创建 dataset 和datatable//1.创建一个dataset&#xff0c;dataset就是一个集合&#xff0c;内存数据库&#xff0c;临时数据库DataSet ds new DataSet("Company");//括号里面是数据库的名称//2.创建一个表DataTable dt new DataTable("Employee")…